BOJ 10163 - 색종이
[BOJ] 10163 - 색종이
평면에 1번 ~ N번까지의 색종이를 차례로 놓은 후
마지막에 각 색종이가 보이는 면적을 구하는 문제이다.
1번부터 N번까지 색종이를 차례로 놓기 때문에
평면의 정보를 저장하는 이차원 배열을 선언하여 색종이를 놓을 때마다 배열의 정보를 업데이트하여
각 색종이가 차치하는 부분이 얼만큼인지 세어주면 색종이가 보이는 면적을 구할 수 있다.
#include <bits/stdc++.h>
using namespace std;
int n; int arr[101][101];
int cnt[101];
int main()
{
scanf("%d", &n);
for(int i=1;i<=n;i++)
{
int a, b, c, d;
scanf("%d %d %d %d", &a, &b, &c, &d);
for(int p=a;p<a+c;p++)
{
for(int q=b;q<b+d;q++)
{
arr[p][q] = i;
}
}
}
for(int i=0;i<101;i++)
{
for(int j=0;j<101;j++)
{
cnt[arr[i][j]]++;
}
}
for(int i=1;i<=n;i++)
{
printf("%d\n", cnt[i]);
}
}
Written on June 3, 2019