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
#include <bits/stdc++.h>
using namespace std;
int liczbasumow, wagisumow[500002], licznik, zduplikowane[500002], wskaznik;
long long sumy[500002], maks;
string wynik = "";
int main() {
    scanf("%d", &liczbasumow);
    for(int i = 1; i <= liczbasumow; i++) { scanf("%d", &wagisumow[i]); zduplikowane[i] = wagisumow[i]; }
    sort(wagisumow, wagisumow+liczbasumow+1);
    //sumy[1] = wagisumow[1];
    for(int i = 1; i <= liczbasumow; i++) {
        if(wagisumow[i] > wagisumow[i-1]) {
            sumy[i] += sumy[i-1] + wagisumow[i] + licznik;
            licznik = 0;
        }
        else if(i != liczbasumow) {
            sumy[i] = sumy[i-1];
            licznik += wagisumow[i];
        }
        else {
            sumy[i] += sumy[i-1] + wagisumow[i] + licznik;
        }
    }
    for(int i = 1; i <= liczbasumow; i++) {
        if(wagisumow[i+1] != wagisumow[i]) {
        
        if(sumy[i] > wagisumow[i+1]) {
            maks = wagisumow[i];
            break;
        }
        
        }
        else {
            wskaznik = 1;
            for(int j = i+2; wagisumow[j] == wagisumow[j-1]; j++) wskaznik++;
            if(sumy[i] > wagisumow[i+wskaznik+1]) {
                maks = wagisumow[i];

                break;
            }
        }
    }
    for(int i = 1; i < liczbasumow+1; i++) {
        if(zduplikowane[i] >= maks && maks != wagisumow[1]) wynik += "T";
        else wynik += "N";
    
    }
    //printf("%s", wynik);
    cout << wynik;
    // cout << maks;
    // printf("%d", sumy[liczbasumow]);
}