https://www.acmicpc.net/problem/5612
문제를 잘 읽어야 쉽다.
데이터가 입력 되는 모양새를 추상화해보면 아래 그림과 같다.
t = 0인 시점에 터널에 차 2대가 있었고 1분 간 차가 2대 들어오고 3대가 나갔다.
차가 정확이 언제 들어가고 언제 나갔는지 알 수 없어서 t = 1/2일 때 터널에 몇 대의 차가 있는지 알 수 없다.
1분 후인 t = 1일 때 몇 대의 차가 있는 지 정확히 알 수 있다.
문제는 친절하게 t = 0,1,2,...,n인 시점에 터널에 차가 몇 대 있는가를 묻고 있다.
그 중에서 차의 수가 최대가 되는 때를 찾아서 출력하면 된다.
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 | #include<stdio.h> #define TRUE 1 #define FALSE 0 #define MAX(A,B) (A>B)?A:B int main() { int n, m; int S; int sMax = 0; int isPossible = TRUE; int in, out; scanf("%d %d",&n,&S); sMax = S; for (int i = 0; i < n; i++) { scanf("%d %d",&in,&out); S += in - out; if (S < 0) isPossible = FALSE; sMax = MAX(S, sMax); } if(isPossible) printf("%d\n",sMax); else printf("0\n"); return 0; } | cs |
'백준' 카테고리의 다른 글
5212)지구 온난화 (0) | 2019.02.07 |
---|---|
2810)컵홀더 (0) | 2019.02.06 |
3054)피터팬 프레임 (0) | 2019.02.06 |
11047)동전 0 (0) | 2019.02.04 |
1003)피보나치 함수 (0) | 2019.02.04 |