No Rules Rules

색종이 (feat. 백준, 10163번) 본문

생활/코테

색종이 (feat. 백준, 10163번)

개발하는 완두콩 2023. 2. 28. 14:30
728x90
반응형

색종이
https://www.acmicpc.net/problem/10163

 

10163번: 색종이

평면에 색깔이 서로 다른 직사각형 모양의 색종이 N장이 하나씩 차례로 놓여진다. 이때 색종이가 비스듬하게 놓이는 경우는 없다. 즉, 모든 색종이의 변은 서로 평행하거나, 서로 수직이거나 둘

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <string.h>
using namespace std;
int arr[1002][1002], ans[101];
int main(){
    ios::sync_with_stdio(false), cin.tie(NULL);
    memset(arr, 0, sizeof(arr));
    memset(ans, 0, sizeof(ans));
    register int minX = 1010, minY = 1010, maxX = 0, maxY = 0, N;
    cin >> N;
    for(register int n = 1, x, y, w, h; n <= N; ++n){
        cin >> x >> y >> w >> h;
        for(register int i = x, j; i < x + w; ++i)
            for(j = y; j < y + h; ++j)
                arr[i][j] = n;
        if(x < minX)            minX = x;
        if(y < minY)            minY = y;
        if(x + w > maxX)        maxX = x + w;
        if(y + h > maxY)        maxY = y + h;
    }
    for(register int x = minX, y; x < maxX; ++x)
        for(y = minY; y < maxY; ++y)
            ++ans[arr[x][y]];
    for(register int n = 1; n <= N; ++n)
        cout << ans[n] << "\n";
	return 0;
}
// *&)*@*

 

반응형

색종이 순서마다 번호를 할당하고 색종이가 놓여진 전체 영역에서 각 번호의 개수를 출력하면 됩니다.

단, 마지막 색종이가 가장 위에 놓여야 하기 때문에 첫번째 색종이부터 번호를 할당시켜야 합니다.

728x90
반응형
Comments