본문 바로가기

Solutions/Dlbo's Solution

PKU 2181. Jumping Cows -_- AC get

#include 

using namespace std;

int main()
{
	int n, i, j, cnt = 1, sum = 0, total = 0, temp = 0;
	int buf[150000];

	cin >> n ;

	for (i = 0; i < n; i++)
	{
		cin >> buf[i];
	}


	for(j = 1; j <= n; j++)
	{
		if(cnt % 2 != 0)
		{
			if(buf[j - 1] > buf[j])
			{
				temp = buf[j - 1];
				cnt++;
				sum += temp;
			}
		}
		else
		{
			if(buf[j] > buf[j - 1])
			{
				temp = buf[j - 1];
				cnt++;
				sum -= temp;
			}
		}
	}

	cout << sum << endl;

	return 0;
}

시망 -_- 스파킹 이자식 번역 한참 안하더니 이상해졌어

홀수번 포션을 마시면 +, 짝수번 포션을 마시면 -가 아니고, 실제 마신 순서대로 홀수번째 마시면 +, 짝수번째 마시면 -가 됩니다. 어떤 포션이던간에.

거기에, 한번 패스한 포션, 마신 포션은 무조건 패스.

앞에서부터 순차탐색으로 하나하나 오면서, 숫자 큰놈 하나 마시고,

먼저 마신놈보다 작은 숫자 하나 집어마시고,

그다음 다시 또 마시고,

다시 또 먼저 마신것보다 작은 숫자 하나 집어마시면서 진행하면 최대값 나옵니다.