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
#include <bits/stdc++.h>

using namespace std;
pair<long long,long long> tab[500005];
long long tab2[500005];
char s[500005];
long long n, maxi=0;

long long bs(long long pocz, long long kon){
	while(pocz<=kon){
		long long sr=(pocz+kon)/2;
		long long liczba=tab[sr].first;
		//cout<<"pocz: "<<pocz<<" kon: "<<kon<<" sr: "<<sr<<" liczba: "<<liczba<<" ";
		for(int i=0;i<n;i++){
			if(sr==i){
				continue;
			}
			if(tab[i].first<liczba){
				liczba+=tab[i].first;
			}
			else{
				break;
			}
		}
		//cout<<liczba<<" ";
		if(liczba>maxi){
			//cout<<"t"<<'\n';
			kon=sr-1;
		}
		else{
			//cout<<"n"<<'\n';
			pocz=sr+1;
		}
	}
	return kon;
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	
	cin>>n;
	for(int i=0;i<n;i++){
		s[i]='a';
	}
	for(int i=0;i<n;i++){
		cin>>tab[i].first;
		maxi=max(maxi,tab[i].first);
		tab[i].second=i;
		tab2[i]=tab[i].first;
	}
	sort(tab,tab+n);
	
	long long x=bs(0,n-1);
	long long y=tab[x].first;
	
	for(int i=0;i<n;i++){
		if(tab2[i]>y){
			cout<<"T";
		}
		else{
			cout<<"N";
		}
	}
	
	return 0;
}