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

using namespace std;
using ll = long long;

int main() {
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int n; cin>>n;
	vector<int> a(n); for(auto& i: a) cin>>i;
	vector<int> b = a;	
	sort(b.begin(), b.end());
	int lo = 1, hi = n-1, ans = n;
	while(lo <= hi) {
		int mid = (lo + hi)/2;
		ll sum = b[mid];
		bool failed = 0;
		for(int i=0; i<mid; ++i) {
			if(sum > (ll)b[i]) {
				sum += (ll)b[i];
			}
			else {
				failed = 1;
			}
		}
		for(int i=mid+1; i<n; ++i) {
			if(sum > (ll)b[i]) {
				sum += (ll)b[i];
			}
			else {
				failed = 1;
			}
		}
		if(failed) {
			lo = mid + 1;
		}
		else {
			ans = mid;
			hi = mid - 1;
		}
	}

	for(int i=0; i<n; ++i) {
		if(ans < n && a[i] >= b[ans]) {
			cout<<"T";
		}
		else {
			cout<<"N";
		}
	}
	cout<<'\n';
}