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
#include <iostream>
#include <algorithm>
using namespace std;
pair<int,int> tab[500010];
bool cmp(pair<int,int>a,pair<int,int>b){
return a.second<b.second;
}
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>tab[i].first;
        tab[i].second=i;
    }
    sort(tab+1,tab+n+1);
    int m=0;
    long long suma=0;
    long long d=0;
    bool c=0;
    for(int i=1;i<=n;i++){
        if(tab[i].first==tab[i-1].first){
                d+=tab[i].first;
        }else{
        suma+=tab[i].first+d;
        d=0;}
        if(suma<=tab[i+1].first){m=tab[i+1].first;}
    if(suma>tab[n].first){c=1;break;}
    }
    sort(tab+1,tab+n+1,cmp);
    for(int i=1;i<=n;i++){
            if(c==1){
        if(tab[i].first<m){cout<<"N";}else{cout<<"T";}}else{cout<<"N";}
    }
    return 0;
}