반응형

문제 출처 :


https://www.acmicpc.net/problem/14732



알고리즘 분석 :


문제 해결에 필요한 사항

1. 구현

2. 배열


행사장 대여 Small 문제는 배열만 이용하면 범위가 작기에 쉽게 해결 할 수 있다.


인풋으로 주어지는 가로, 세로 범위를 arr배열에 true로 바꿔주고 정답을 찾을 때 arr 배열의 true개수를 찾아주면


겹치는 구간까지 모두 제거한 상태로 결과값을 얻을 수 있다.





소스 코드 : 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <cstdio>
 
using namespace std;
 
bool arr[502][502];
 
int main()
{
    int n;
    scanf("%d",&n);
 
    for (int i = 0; i < n; i++)
    {
        int a, b, c, d;
        scanf("%d %d %d %d"&a, &b, &c, &d);
 
        for (int x = a; x < c; x++)
            for (int y = b; y < d; y++)
                arr[x][y] = true;
    }
 
    int cnt = 0;
    for (int i = 0; i <= 500; i++)
        for (int j = 0; j <= 500; j++)
            if (arr[i][j])
                cnt++;
    printf("%d",cnt);
    return 0;
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus


반응형