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
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
#include <iostream>
#include <algorithm>

using namespace std;

void fastscan(long long &number)
{
    bool negative = false;
    register long long c;
    number = 0;
    c = getchar();
    if (c=='-')
    {
        negative = true;
        c = getchar();
    }
    for (; (c>47 && c<58); c=getchar())
        number = number *10 + c - 48;
    if (negative)
        number *= -1;
}

struct ryba
{
    long long waga;
    int index;
};

bool cmp1(ryba a, ryba b)
{
    if(a.waga > b.waga)
        return true;
    return false;
}

bool cmp2(ryba a, ryba b)
{
    if(a.index > b.index)
        return false;
    return true;
}

int main()
{
    long long n;
    fastscan(n);
    ryba ryby[n];
    for(int i = 0; i < n; i++)
    {
        fastscan(ryby[i].waga);
        ryby[i].index = i;
    }

    sort(ryby, ryby + n, cmp1);

    ryba pom[n];
    pom[n-1].waga = ryby[n-1].waga;
    pom[n-1].index = ryby[n-1].index;
    for(int i = n - 2; i >= 0; i--)
    {
        pom[i].waga = pom[i+1].waga + ryby[i].waga;
        pom[i].index = ryby[i].index;
    }

    ryba wynik[n];

    wynik[0].index = pom[0].index;
    if(ryby[0].waga > ryby[n-1].waga)
        wynik[0].waga = 1;
    else
        wynik[0].waga = 0;
    for(int i = 1; i < n; i++)
    {
        wynik[i].index = pom[i].index;
        if(pom[i].waga > ryby[i-1].waga && ryby[i].waga > ryby[n-1].waga)
        {
            wynik[i].waga = 1;
        }
        else
        {
            wynik[i].waga = 0;
            for(int j = i + 1; j < n; j++)
            {
                wynik[j].waga = 0;
                wynik[j].index = ryby[j].index;
            }
            break;
        }
    }

    sort(wynik, wynik + n, cmp2);

    for(int i = 0; i < n; i++)
    {
        if(wynik[i].waga == 1)
            cout << 'T';
        else
            cout << 'N';
    }

    return 0;
}