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

using namespace std;

struct sum{
    long long war,ind;
};

bool operator < (sum a,sum b){
    if(a.war<b.war) return 1;
    return 0;
}

sum ts[500001];
long long ow[500001];
long long n,s,wn;

int main()
{
    scanf("%lld",&n);
    for(int i=0;i<n;i++){
        scanf("%lld",&ts[i].war);
        ts[i].ind=i;
        ow[i]=ts[i].war;
        s+=ts[i].war;
    }
    sort(ts,ts+n);
    wn=-1;
    for(int i=n-1;i>0;i--){
        //printf("%lld %lld\n",ts[i].war,s);
        s-=ts[i].war;
        if((ts[i].war!=ts[i+1].war)){
            if(s+ts[i].war<=ts[i+1].war){

                wn=ts[i].war;
                break;
            }
        }
    }
    if(wn==-1)  wn=ts[0].war;
    if(ts[0].war==ts[n-1].war){
        //printf("aaa");
        wn=1000000009;
    }
    for(int i=0;i<n;i++){
        if(ow[i]<=wn){
            printf("N");
        }else{
            printf("T");
        }
    }
    return 0;
}