라벨이 인 게시물 표시

불쾌한 날

이미지
농부 희찬이의 N(1≤N≤80,000)마리의 소들은 "bad hair day"를 맞이하였다. 각 소들이 자신들의 촌스런 머리 모양을 부끄러워 하자, 희찬이는 소들이 다른 소들의 머리 모양을 얼마나 알 수 있는지를 알고자 했다. i 번째 소들은 키가 hi(1≤hi≤1,000,000,000) 이며, 동쪽(오른쪽)을 바라보고 서있다. 따라서, i번째 소는 자신의 앞 ( i+1, i+2,...)의 소들의 머리 모양만 볼 수 있으며, 앞에 자신의 키와 같거나 큰 소가 서 있을 경우 그 소의 앞에 있는 소들의 머리 모양을 볼 수 없다. 다음 예제를 고려해보자: ()의 숫자는 키를 나타낸다.  1 번 소는 2,3,4번소의 머리 모양을 볼 수 있다.  2 번 소는 어떤 소의 머리 모양도 볼 수 없다.  3 번 소는 4번 소의 머리 모양을 볼 수 있다.  4 번 소는 어떤 소의 머리 모양도 볼 수 없다.   5 번 소는 6번 소의 머리 모양을 볼 수 있다.  6 번 소는 모든 소들의 머리 모양을 볼 수 없다! i 번 소들이 볼 수 있는 머리 모양의 수를 Ci 이라고 할 때, C 1 부터 C N  까지의 합을 출력하는 프로그램을 작성하라. 위의 예제의 답은 3+0+1+0+1+0=5가 된다. 입력 입력은 두 줄로 이뤄지며 입력의 첫 번째 줄에는 N 이 입력된다.   그리고 그 다음 줄에는 N 개의 숫자가 주어지며, 해당 줄의 i번째 숫자는 hi를 뜻한다. 출력 C 1   부터 C N  까지의 합을 한 줄에 하나씩 출력한다. 입력 예시 6 5 2 4 2 6 1 출력 예시 5 #include <stdio.h> #define MAX 80000 int N; long long H[MAX]; long long stack[MAX]; int top = -1; long ...