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
#include <iostream>
using namespace std;
int main()
{
	cin.tie(0); 
	cout.tie(0); 
	ios_base::sync_with_stdio(false);
	int n, i, j, min, minx, uwu, owo, mpkm;
	cin>>n;
	int pom[n][3], t[n];
	bool bul, krul=false;
	for(i=0; i<n; i++)
	{
		cin>>pom[i][0];
		pom[i][1]=i;
		pom[i][2]=0;
	}
	uwu=pom[0][0];
	for(i=0; i<n; i++)	//segregowanie
	{
		min=pom[i][0]; minx=i;
		for (j=i; j<n; j++)
		{
			if (pom[j][0]<min)
			{
				min=pom[j][0];
				minx=j;
			}
		}
		swap(pom[i][0],pom[minx][0]);
		swap(pom[i][1],pom[minx][1]);
		if (pom[i][0]<uwu) uwu=pom[i][0];
	}
	for (i=0; i<n; i++)
	{
		for (j=0; j<n; j++) t[j]=pom[j][0];
		for(j=0; j<n; j++)
		{
			if(t[j]==pom[i][0])
			{
				t[j]=0;
				break;
			}
		}
		mpkm=pom[i][0];
		if (mpkm==uwu) pom[i][2]=0;
		else
		{
			for (j=0; j<n; j++)
			{
				if(t[j]<mpkm)
				{
					mpkm=mpkm+t[j];
					t[j]=0;
				}
				else break;
			}
			bul=true;
			for (j=0; j<n; j++)
			{
				if(t[j]!=0) bul=false;
			}
			if (bul)
			{
				pom[i][2]=1;
				krul=true;
			}
		}
		if (krul) break;
	}
	for (j=i; j<n; j++)
	{
		pom[j][2]=1;
	}
	for(i=0; i<n; i++)	//segregowanie
	{
		min=pom[i][1]; minx=i;
		for (j=i; j<n; j++)
		{
			if (pom[j][1]<min)
			{
				min=pom[j][1];
				minx=j;
			}
		}
		swap(pom[i][0],pom[minx][0]);
		swap(pom[i][1],pom[minx][1]);
		swap(pom[i][2],pom[minx][2]);
	}
	for(i=0; i<n; i++)
	{
		if (pom[i][2]==1) cout<<"T";
		else cout<<"N";
	}
}