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
#include <bits/stdc++.h>
using namespace std;
char wyn[500002];
long long pre[500002];
pair<int,int> tab[500002];
int main() {
	ios_base::sync_with_stdio(0);
	int n, i, waga, pocz = 0,j;
	cin >> n;
	for(i = 0; i < n; i++)  {
		cin >>waga;
		tab[i].first = waga;
		tab[i].second = i;		
	}
	sort(tab, tab + n);
	for(i = 1; i < n + 1; i++) pre[i] = pre[i-1] + tab[i-1].first;
	wyn[tab[0].second] = 'N';
	j = 0;
	while(j + 1 < n && tab[j].first == tab[j+1].first) {
		wyn[tab[j + 1].second] = 'N';
		j++;
	}
	for(i = 1; i < n; i++) {
		if(pre[i] <= tab[i].first) pocz = i;
	}
	i = n - 1;
	while(i >= pocz && i > j) {
		wyn[tab[i].second] = 'T';
		i--;	
	}
	while(i > j) {
		wyn[tab[i].second] = 'N';
		i--;	
	}
	for(i = 0; i < n; i++) cout << wyn[i];
	return 0;
}