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
#include <iostream>
#include <algorithm>
#include <map>

using namespace std;

int main() {

	int n;
	cin >> n;
	int sums[n];
	char result[n+1];

	for (int i = 0; i < n; i++)
		cin >> sums[i];

	int tab[n];

	long long int sum = 0;
	for (int i = 0; i < n; i++) {
		tab[i] = sums[i];
		sum += tab[i];
	}

	sort(tab,tab + n);

	map<int, char> m;

	if (tab[n-1] != tab[0]) {

		m[tab[n-1]] = 'T';
		sum -= tab[n-1];

		bool is_chance = true;
		int i = n-2;
		while (is_chance && i > 0) {
			sum -= tab[i];
			if (tab[i] != tab[i+1]) {
				if (tab[i] + sum > tab[i+1] && tab[i] != tab[0]) {
					m[tab[i]] = 'T';
				} else {
					m[tab[i]] = 'N';
					is_chance = false;
				}
			} 
			i--;
		}

		for (int k = i; k >= 0; k--) {
			m[tab[k]] = 'N';
		}

		for (int k = 0; k < n; k++) {
			result[k] = m[sums[k]];
		}

	} else {
		for (int k = 0; k < n; k++) {
			result[k] = 'N';
		}
	}

	result[n] = '\0';
	cout << result << endl;

	return 0;
}