Computer Science/Data Structure, Algorithm

Jungol] 1141 : 불쾌한 날

TwinParadox 2015. 4. 19. 17:13
728x90

출처 : http://www.jungol.co.kr/problem.php?id=1141




#include <iostream>

using namespace std;

int main(void)

{

int cows[80000];

int n, i, x = 0, Cow_Front;

long long cnt = 0;


cin >> n; // 몇마리?


for (i = 0; i < n; i++)

{

cin >> Cow_Front; // 앞에 서게 될 소의 사이즈를 입력받는다.


while (cows[x - 1] <= Cow_Front && x > 0) x--;

// 소가 두 마리 이상이며, 앞에 서게 된 소의 사이즈가 뒤에 있는 소의 사이즈보다 크거나 같은 경우

// 시야에 방해받지 않는 사이즈의 소가 나올 때까지 시야가 가려지는 사이즈의 소들을 제외한다.

// (x는 입력받은 앞에 서게 될 소의 주소값이며 유효한 소 중 가장 앞에 서있는 소의 주소값.)

cnt += x; 

// 시야에 방해받지 않는 소의 수만큼 더한다.

cows[x++] = Cow_Front;

// 입력 받은 소의 사이즈를 입력하고 다음 입력받을 소의 주소값을 임시로 배정해둔다.

}

cout << cnt;

}

728x90