어디가 틀렸는지 모르겠다 ㅜ.ㅜ
#include <iostream>
using namespace std;
int paper[101][101] = { 0 };
void colorPaper(int a, int b) {
for (int i = 0; i < 10; ++i)
for (int j = 0; j < 10; ++j)
paper[a + i][b + j] = 1;
return;
}
//size: 좌측 상단의 좌표가 paper[x][y-1]이고, 가로의 길이가 width인 직사각형의 최대 넓이
int getSizeWithWidth(int x, int y, int width) {
int size = width;
bool flag = true;
for (int i = x + 1; i <= 100; ++i) {
for (int j = y - width; j < y; ++j) {
if (paper[i][j] != 1) {
flag = false;
break;
}
}
if (flag) size += width;
else break;
}
return size;
}
//cand: 좌측 상단의 좌표가 paper[x][y]인 직사각형이 가질 수 있는 최대 넓이
int getCand(int x, int y) {
int cand;
int width = 0;
for (int j = y; j <= 100; ++j) {
if (paper[x][j] == 1)
width++;
else if (width != 0) {
cand = getSizeWithWidth(x, j, width);
break;
}
}
return cand;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin >> n;
for (int i = 0; i < n; ++i) {
int a, b;
cin >> a >> b;
colorPaper(a, b);
}
int result = 0;
for(int i = 0; i < 100; ++i)
for (int j = 0; j < 100; ++j) {
if (paper[i][j] == 1) {
int cand = getCand(i, j);
if (result < cand)
result = cand;
}
}
cout << result;
return 0;
}