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 <bits/stdc++.h>
using namespace std;

queue <int> ryby_odp;
map <int, int> ryby;
map<int, int>::iterator strt;

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	bool czy_krol;
	int max=-1;
	int suma_wagi;
	int osobnik;
	int n;
	cin>>n;
	for(int i=0; i<n; i++)
	{
		cin>>osobnik;
		ryby[osobnik]++;
		ryby_odp.push(osobnik);
		if(osobnik>max)
		{
			max=osobnik;
		}
	}
	
	while(!ryby_odp.empty())
	{
		osobnik=ryby_odp.front();
	
		ryby_odp.pop();
		suma_wagi=osobnik;
		czy_krol=false;
		strt=ryby.begin();
		suma_wagi=suma_wagi+(strt->first)*(strt->second);
		strt=ryby.find(osobnik);
		
		if(strt!=ryby.begin())
		{
			strt--;
			for(;strt!=ryby.begin(); strt--)
			{
			suma_wagi=suma_wagi+(strt->first)*(strt->second);
		
				if(suma_wagi>max)
				{
				czy_krol=true;
				break;
				}
			}
			if(suma_wagi>max)
			{
				czy_krol=true;
				
			}
			strt=ryby.find(osobnik);
			if(suma_wagi>strt->first)
			{
				suma_wagi=suma_wagi+(strt->first)*(strt->second-1);
				if(suma_wagi>max)
				{
					czy_krol=true;
				}
			}
			strt++;
			if(strt!=ryby.end())
			{
				for(; strt!=ryby.end(); strt++)
				{
					if(suma_wagi>strt->first)
					{		
					suma_wagi=suma_wagi+(strt->first)*(strt->second);
					if(suma_wagi>max)
					{
						czy_krol=true;
						break;
					}
				}
					
				}
			}
			
		}
			
		
		
		if(czy_krol==true)
		{
			cout<<"T";
		}
		else
		{
			cout<<"N";
		}
	
	}
	cout<<endl;
	return 0;
}