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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include<bits/stdc++.h>
#define N 500001

using namespace std;


int n,x;
struct str{
	int masa, ind;
	bool czy;
};

str ryba[N];

bool comp(str& a, str& b){
	return a.masa>b.masa;
}

bool comp1(str& a, str& b){
	return a.ind<b.ind;
}

long long sumam[N];

void ustalanietab(){
	sumam[n-1]=0;
	for(int i=n-2; i>=0; i--){
		sumam[i]=sumam[i+1]+ryba[i+1].masa;
	}
}


// 0 < 1 < 2 < 3 < 4 < 5 < ... < n-1
void solve(){
	if(ryba[0].masa>ryba[n-1].masa){
		ryba[0].czy=true;
	}else return;
	
	ustalanietab();
	
	/*//wypisywanie 
	cout<<endl;
	for(int i=0; i<n; i++){
		
		cout<<i<<" "<<sumam[i]<<endl;
	}*/
	
	for(int i=1; i<=n-2; i++){
		if(ryba[i].masa>ryba[n-1].masa && ryba[i].masa+sumam[i]>ryba[i-1].masa)ryba[i].czy=true;
		else return;
		
	}
	
}

int main(){
	std::ios_base::sync_with_stdio(0);
	
	cin>>n;
	for(int i=0; i<n; i++){
		cin>>x;
		ryba[i].masa=x;
		ryba[i].ind=i;
		
	}
	
	sort(ryba, ryba+n, comp);
	//wypisywanie
	/*for(int i=0; i<n; i++){
		cout<<ryba[i].masa<<" ";
	}cout<<endl;*/
	
	solve();
	sort(ryba, ryba+n, comp1);
	/*//wypisywanie
	for(int i=0; i<n; i++){
		cout<<ryba[i].masa<<" ";
	}cout<<endl;*/
	for(int i=0; i<n; i++)
	if(ryba[i].czy)cout<<'T';
	else cout<<'N';
	//if(ryba[n-1].czy)cout<<"kurwa";

	
	return 0;
}