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
#include <cstdio>
#include <vector>

int main()
{
	int n;
	int *bills, *billsSorted, *denom;
	std::vector<int> odds;

	scanf("%d", &n);
	bills = new int[n+1];
	billsSorted = new int[n+1];
	denom = new int[1001];

	for (int i = 1; i <= n; ++i)
		scanf("%d", &bills[i]);

 	for (int i = 0; i <= 1000; ++i)
 		denom[i] = 0;

 	for (int i = 1; i <= n; ++i)
 		++denom[bills[i]];

 	for (int i = 1; i <= 1000; ++i)
 		denom[i] = denom[i] + denom[i-1];

 	for (int i = n; i > 0; --i)
 	{
 		billsSorted[denom[bills[i]]] = bills[i];
 		--denom[bills[i]];
 	}

 	//for (int i = 1; i <= n; ++i)
 		//printf("%d\n", billsSorted[i]);

 	long long sum = 0;

 	for (int i = 1; i <= n; ++i)
 	{
 		if (billsSorted[i] % 2 == 0)
 			sum += (long long)billsSorted[i];
 		else
 			odds.push_back(billsSorted[i]);
 	}

 	int oddsAdded = 0;
 	for (int i = 0; i < odds.size(); ++i)
 	{
 		if (oddsAdded % 2 == 0)
 		{
 			if (i+1 < odds.size())
 			{
 				sum += (long long)odds[i];
 				oddsAdded++;
 			}
 		}
 		else
 		{
 			sum += (long long)odds[i];
 			oddsAdded++;
 		}
 	}

 	if (sum > 0)
 		printf("%lld\n", sum);
 	else
 		printf("NIESTETY\n");

	return 0;
}