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
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
int main()
{
    cin.tie(0);
    ios_base::sync_with_stdio(0);

    int n;
    cin >> n;

    vector <pair <int, int>> v(n);
    vector <long long> psums(n);
    vector <bool> g(n, 1);
    
    for (int i = 0; i < n; i++) {
        cin >> v[i].first;
        v[i].second = i;
    }

    sort(v.begin(), v.end());
    psums[0] = v[0].first;

    int prev = v[0].first;
    int lastp = 0;
    for (int i = 1; i < n; i++) {
        psums[i] = psums[i - 1] + v[i].first;

        if (v[i].first == prev)
            lastp = i;
    }
    lastp++;
    int res = 0;

    for (int i = 0; i < n - 1; i++) {
        g[i] = psums[i] > v[i + 1].first;
        if (!g[i])
            res = i + 1;
    }

    res = max(res, lastp);

    string ans(n, 'N');
    for (int i = res; i < n; i++)
        ans[v[i].second] = 'T';

    cout << ans << "\n";
}