예제/기타

[C언어] (기타) 준오선배가 시키신 정올초등지역본선 2번문제(2007)

Mosu(정종인) 2016. 3. 30. 23:07
반응형

http://59.23.113.171/pool/koi_Epaper/koi_Epaper.php?pname=koi_Epaper


코드 : 

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
34
35
#include <stdio.h>
 
int main(){
    int xy[100][100]={{0,},};
    int k, i, j;
    int nulbi=0;
 
    int square_num, input_1, input_2;//input_1는 왼쪽거리 input_2는 아래거리
 
    scanf("%d", &square_num);
    fflush(stdin);
    
 
    for(k=0; k<square_num; ++k){
        scanf("%d %d", &input_1, &input_2);
 
        for(i=input_2-1; i<input_2+9++i){
            for(j=input_1-1; j<input_1+9++j){
                xy[i][j]+=1;
            }
        }
    }
 
    for(i=0; i<100++i){
        for(j=0; j<100++j){
            if(xy[i][j]>=1){
                nulbi+=xy[i][j];
            }
            if(xy[i][j]>1){
                nulbi-=xy[i][j]-1;
            }
        }
    }
    printf("%d", nulbi);
}
cs



설명 : 겹치는 우선 생성되는 사각형들의 넓이를 겹치는거 상관없이 모두 더함. 이 값을 nulbi에 저장.

  겹치는 만큼 +1을 하도록 만들었으니 그 겹치는 만큼-1을 해서 한겹만 남겨두고 나머지는 다 넓이에서 뺀다.

  그러면 값이 제대로 나온다.

반응형