제2회 대학생 프로그래밍 온라인대회 문제 A 게시판

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.util.Scanner;
public class Board {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt(); // 테스트 케이스의 개수
for(int i = 0; i < T; i++) {
int x1 = scan.nextInt();
int y1 = scan.nextInt();
int x2 = scan.nextInt();
int y2 = scan.nextInt();
int x3 = scan.nextInt();
int y3 = scan.nextInt();
int x4 = scan.nextInt();
int y4 = scan.nextInt();
process(x1, y1, x2, y2, x3, y3, x4, y4);
}
}
public static void process(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) {
int maxX = Math.max(x1, x3);
//int maxX = x1 > x3 ? x1 : x3;
int maxY = Math.max(y1, y3);
//int maxY = y1 > y3 ? y1 : y3;
int minX = Math.min(x2, x4);
// int minX = x2 < x4 ? x2 : x4;
int minY = Math.min(y2, y4);
//int minY = y2 < y4 ? y2 : y4;
int area = (x2 - x1) * (y2 - y1) - (minX - maxX) * (minY - maxY);
System.out.println(area);
}
}

주절주절

간단한 기하 문제이다. 먼저 붙힌 포스터의 넓이를 구한뒤 나중에 붙힌 포스터와 겹치는 넓이를 빼주면 된다.

Share Comments