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
#include <bits/stdc++.h>
 
#define st first
#define nd second
#define pb push_back
#define BOOST ios_base::sync_with_stdio(0); cout.tie(0); cin.tie(0);
#define PI 3.14159265359
 
using namespace std;
 
typedef long long ll;
constexpr ll MOD = 1000000007, sup = 29;
constexpr ll MOD_1 = 1234567891, sup_1 = 1009;
constexpr ll MOD_2 = 1000000009, sup_2 = 107;
constexpr int MXN = 500000+10, CZAPA = (1<<19)/*, INF = 1000000000*/;
constexpr ll INF = 1000000000000000000;

int n;
ll tab[MXN], nin[MXN];

bool check(int idx){
	ll x = tab[idx];
	for(int i=0; i<n; i++){
		if(i == idx) continue;
		if(tab[i] >= x) return false;
		x += tab[i];
	}
	return true;
}

int bs(int p, int q){
	if(check(p)) return p;
	if(!check(q)) return q+1;
	//cout<< "AA\n";
	if(q-1 >= 0 && !check(q-1)) return q;
	while(p + 1 < q){
		int mid = (p+q)/2;
		//cout<< "mid " << check(mid) << '\n';
		if(check(mid))
			q = mid;
		else
			p = mid;
	}
	return q;
}

int main(){
	BOOST;
	
	cin>> n;
	for(int i=0; i<n; i++){
		cin>> tab[i];
		nin[i] = tab[i];
	}
	sort(tab, tab+n);
	tab[n] = INF;
	int ans = bs(0, n-1);
	for(int i=0; i<n; i++){
		if(nin[i] >= tab[ans]) cout<< 'T';
		else cout<< 'N';
	}
	cout<< '\n';


	return 0;
}