#include <stdio.h>
#include <stdlib.h>
const int RED = 1;
const int BLUE = 2;
const int GRAY = 3;
int solution(int N, int M, int** area, int area_row_len, int area_col_len, int C) {
int answer = 0;
int** paper = (int**)malloc(sizeof(int*) * N);
for (int i = 0; i < N; i++) {
paper[i] = (int*)malloc(sizeof(int) * N);
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
paper[i][j] = 0;
}
}
for (int i = 0; i < M; i++) {
int* target = area[i];
int from_r = target[0];
int from_c = target[1];
int to_r = target[2];
int to_c = target[3];
int color = target[4];
for (int r = from_r; r <= to_r; r++) {
for (int c = from_c; c <= to_c; c++) {
if (paper[r][c] == 0) {
paper[r][c] = color;
}
else if(paper[r][c] == color){
paper[r][c] = GRAY;
}
}
}
}
for (int r = 0; r < N; r++) {
for (int c = 0; c < N; c++) {
if (C == paper[r][c]) {
answer += 1;
}
}
}
return answer;
}
// 아래는 테스트케이스 출력을 해보기 위한 main 함수입니다. 아래에는 잘못된 부분이 없으니 위의 코드만 수정하세요.
int main() {
int N1 = 10;
int M1 = 2;
int area1_row_len = 2;
int area1_col_len = 5;
int** area1 = (int**)malloc(sizeof(int*) * area1_row_len);
for(int i = 0; i < area1_row_len; i++)
area1[i] = (int*)malloc(sizeof(int) * area1_col_len);
area1[0][0] = 1;
area1[0][1] = 1;
area1[0][2] = 5;
area1[0][3] = 4;
area1[0][4] = 1;
area1[1][0] = 2;
area1[1][1] = 3;
area1[1][2] = 6;
area1[1][3] = 6;
area1[1][4] = 2;
int C1 = 3;
int ret1 = solution(N1, M1, area1, area1_row_len, area1_col_len, C1);
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
printf("solution 함수의 반환 값은 %d입니다.\\n", ret1);
int N2 = 10;
int M2 = 2;
int area2_row_len = 2;
int area2_col_len = 5;
int** area2 = (int**)malloc(sizeof(int*) * area2_row_len);
for(int i = 0; i < area2_row_len; i++)
area2[i] = (int*)malloc(sizeof(int) * area2_col_len);
area2[0][0] = 1;
area2[0][1] = 1;
area2[0][2] = 5;
area2[0][3] = 4;
area2[0][4] = 1;
area2[1][0] = 2;
area2[1][1] = 3;
area2[1][2] = 6;
area2[1][3] = 6;
area2[1][4] = 1;
int C2 = 3;
int ret2 = solution(N2, M2, area2, area2_row_len, area2_col_len, C2);
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
printf("solution 함수의 반환 값은 %d입니다.\\n", ret2);
}