또또또또또또또또또 그놈의 scanf printf 아니면 시간초과라니 진절머리가 난다.
#pragma warning(disable: 4996)
#include <iostream>
#include <vector>
using namespace std;
int check(vector<vector<int>> paper, int size)
{
int standard= paper[0][0];
for (int i = 0; i < size; ++i)
{
for (int j = 0; j < size;++j)
{
if (paper[i][j] != standard)
return 2;
}
}
return standard;
}
void cutting(vector<vector<int>> paper, vector<int>& ans, int size)
{
int state = check(paper, size);
if (state != 2)
{
ans[state + 1]++;
}
else
{
vector<vector<int>> p1(size/3), p2(size / 3), p3(size / 3), p4(size / 3), p5(size / 3), p6(size / 3), p7(size / 3), p8(size / 3), p9(size / 3);
for (int i = 0; i < size / 3; i++)
{
p1[i] = vector<int>(size / 3);
p2[i] = vector<int>(size / 3); p3[i] = vector<int>(size / 3); p4[i] = vector<int>(size / 3); p5[i] = vector<int>(size / 3);
p6[i] = vector<int>(size / 3); p7[i] = vector<int>(size / 3); p8[i] = vector<int>(size / 3); p9[i] = vector<int>(size / 3);
for (int j = 0; j < size / 3; j++)
{
p1[i][j] = paper[i][j];
p2[i][j] = paper[i][j + (size / 3)];
p3[i][j] = paper[i][j + (2 * (size / 3))];
p4[i][j] = paper[i + (size / 3)][j];
p5[i][j] = paper[i + (size / 3)][j + (size / 3)];
p6[i][j] = paper[i + (size / 3)][j + (2 * (size / 3))];
p7[i][j] = paper[i + (2 * (size / 3))][j];
p8[i][j] = paper[i + (2 * (size / 3))][j + (size / 3)];
p9[i][j] = paper[i + (2 * (size / 3))][j + (2 * (size / 3))];
}
}
cutting(p1, ans, size / 3); cutting(p2, ans, size / 3); cutting(p3, ans, size / 3); cutting(p4, ans, size / 3); cutting(p5, ans, size / 3); cutting(p6, ans, size / 3); cutting(p7, ans, size / 3); cutting(p8, ans, size / 3); cutting(p9, ans, size / 3);
}
}
int main()
{
cin.tie();
cout.tie();
vector<int> ans(4);
ans[0] = ans[1] = ans[2] = 0;
int N;
scanf("%d", &N);
vector<vector<int>> paper(N+1);
for (int i = 0; i < N; i++)
{
paper[i] = vector<int>(N + 1);
for (int j = 0; j < N; j++)
{
scanf("%d", &paper[i][j]);
}
}
cutting(paper, ans, N);
printf("%d\n%d\n%d", ans[0], ans[1], ans[2]);
return 0;
}
'vidigummy KAU > 알고리즘 공부(백준!)' 카테고리의 다른 글
BOJ 11279/1927 최대힙/최소힙 (0) | 2021.01.14 |
---|---|
BOJ 1202 보석도둑 (0) | 2021.01.14 |
BOJ 16916 부분 문자열 (0) | 2021.01.09 |
BOJ 1992 쿼드트리 (0) | 2021.01.08 |