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
#include<bits/stdc++.h>
#define ll long long
#define pii pair<int, int>
#define st first
#define nd second
#define turbo ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define pb push_back
#define vi vector<int>
#define vvi vector<vi>
#define qi queue<int>
#define ld long double

using namespace std;

/*---------------------------------------------------------///CODE///---------------------------------------------------------*/

int main()
{
    turbo

    int n; cin >> n;

    vector<pii> v(n);
    vector<char> ans(n);

    for(int i = 0; i < n; i++)
    {
        cin >> v[i].st;
        v[i].nd = i;
    }

    sort(v.begin(), v.end());
    int l = 0, r = n;

    while(l < r)
    {
        int m = (l + r) >> 1;

        bool ok = true;

        ll sum = v[m].st;
        for(int i = 0; i < n; i++)
            if(i == m)
                continue;
            else if(v[i].st >= sum)
                ok = false;
            else 
                sum += v[i].st;

        if(ok) r = m; 
        else l = m + 1;
    }

    for(int i = 0; i < n; i++)
        if(l <= i)
            ans[v[i].nd] = 'T';
        else 
            ans[v[i].nd] = 'N';

    for(auto i : ans)
        cout << i;

    return 0;
}