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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;


int main()
{
	ios::sync_with_stdio(false);

	vector<short> even, odd;

	int n;
	short temp;
	cin >> n;
	unsigned long long sum = 0, max = 0;
	for (int i = 0; i < n; i++)
	{
		cin >> temp;
		(temp%2==0?even:odd).push_back(temp);
		//((temp % 2 == 0) ? dictEven : dictOdd).push_back(temp);
	}
	sort(odd.rbegin(), odd.rend());
	sort(even.rbegin(), even.rend());



	short od, eve;
	short lookingFor;
	bool go = true;
	while (go)
	{
		if (odd.size() == 0 && even.size() == 0)
			break;
		od = odd.size() > 0 ? odd.at(0) : 0;
		eve = even.size() > 0 ? even.at(0) : 0;
			if (od > eve)
			{
				sum += od;
				if(odd.size() > 0)
					odd.erase(odd.begin());
				lookingFor = 1;
			}
			else
			{
				sum += eve;
				if(even.size() > 0)
					even.erase(even.begin());
				lookingFor = 0;
			}


			if (sum % 2 == 0)
				max = sum;

			if (lookingFor == 1)
			{
				if (odd.size() > 0) {
					sum += odd.at(0);
					odd.erase(odd.begin());
				}
			}
			else
			{
				if (even.size() > 0)
				{
					sum += even.at(0);
					even.erase(even.begin());
				}
			}
		
		if (sum % 2 == 0)
			max = sum;
		//((temp % 2 == 0) ? dictEven : dictOdd).push_back(temp);
	}

	if (max > 0)
		cout << max << endl;
	else
		cout << "NIESTETY" << endl;

	return 0;
}