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
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct abc{
    long long x,id;
    char c='N';
};
bool kryt(abc a, abc b){
    if(a.id<b.id) return true;
    return false;
}
bool kryt1(abc a, abc b){
    if(a.x<b.x) return true;
    return false;
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;cin>>n;
    vector<abc>tab(n);
    for(int i = 0;i<n;++i){
        cin>>tab[i].x;
        tab[i].id=i;
    }

    sort(tab.begin(),tab.end(),kryt1);
    vector<abc>pre=tab;
    for(int i = 1;i<n;++i){
        pre[i].x+=pre[i-1].x;
    }
    if(tab[n-1].x!=tab[0].x)pre[n-1].c='T';
    for(int i = n-2;i>=0;--i){
        if(pre[i].x>tab[i+1].x && tab[i].x!=tab[0].x){
            pre[i].c='T';
        }
        else break;
    }
    sort(pre.begin(),pre.end(),kryt);
    for(int i = 0;i<n;++i){
        cout<<pre[i].c;
    }
    return 0;
}