알고리즘 문제풀이
참외밭[백준 2477]
wiojfe
2024. 5. 19. 20:10
https://www.acmicpc.net/problem/2477
전체 사각형에서 빼줘야 하는 작은 사각형의 변 길이를 잘 찾으면 된다.
#include <stdio.h>
int main() {
int K;
scanf("%d", &K);
int x[6] = {0}; // x 방향 길이를 저장할 배열
int y[6] = {0}; // y 방향 길이를 저장할 배열
int xy[6] = {0}; // 전체 길이를 저장할 배열
int xCount = 0, yCount = 0; // x, y 배열의 인덱스를 위한 카운터
int direc, length;
for(int i = 0; i < 6; i++) {
scanf("%d %d", &direc, &length);
if (direc < 3) {
x[xCount++] = length;
} else {
y[yCount++] = length;
}
xy[i] = length;
}
int x_max = x[0];
int y_max = y[0];
for (int i = 1; i < 3; i++) {
if (x_max < x[i]) x_max = x[i];
if (y_max < y[i]) y_max = y[i];
}
int x_min, y_min;
for (int i = 0; i < 6; i++) {
if (xy[i] == y_max) {
x_min = xy[(i + 3) % 6];
}
if (xy[i] == x_max) {
y_min = xy[(i + 3) % 6];
}
}
printf("%d\n", K * (x_max * y_max - x_min * y_min));
return 0;
}