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
65
66
67
68
69
70
71
72
73
74
#include <iostream>

using namespace std;

void S( int tab[], int l, int r )
{
    int i = l;
    int j = r;
    int tmp;
    int x = tab[( l + r ) / 2 ];
    do
    {
        while( tab[i] < x )
             i++;
        while( tab[j] > x )
             j--;
        if( i <= j )
        {
            tmp = tab[i];
            tab[i] = tab[j];
            tab[j] = tmp;
            i++;
            j--;
        }
    } while( i <= j );
    if(l<j)
        S(tab, l, j);
    if(r>i)
        S(tab, i, r);
}

int main()
{
    int n;
    cin>>n;
    int tab[n], tab2[n];
    for(int i=0; i<n; i++)
        cin>>tab[i];
    for(int i=0; i<n; i++)
        tab2[i]=tab[i];
    S(tab, 0, n-1);
    int j=0;
    bool stop=true;
    for(j=0; j<n && stop; j++)
    {
        long long masa=tab[j];
        stop = false;
        for(int i=0; i<n && !stop; i++)
        {
            if(i!=j)
            {
                if(masa>tab[i])
                    masa+=tab[i];
                else
                    stop=true;
            }
        }
    }
    int mi = tab[j-1];
    if(!stop)
    {
        for(int i=0; i<n; i++)
            if(tab2[i]>=mi)
                cout<<"T";
            else
                cout<<"N";
    }
    else
    {
        for(int i=0; i<n; i++)
            cout<<"N";
    }
    return 0;
}