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
#include <iostream>
#include <vector>
#include <string>
#include <numeric>

char canBeKing(std::vector<long long> arr, size_t index)
{
	long long sum = std::accumulate(arr.begin(), arr.end(), decltype(arr)::value_type(0));
	long long catfish = arr[index];
	arr[index] = 0;
	bool ateOther;
	
	do
	{
		ateOther = false;
		for (size_t i = 0; i < arr.size(); i++)
		{
			if (arr[i] != 0 && arr[i] < catfish)
			{
				catfish += arr[i];
				arr[i] = 0;
				ateOther = true;
			}
		}
	} while (ateOther);
	if (catfish == sum)
	{
		return 'T';
	}
	return 'N';
}

int main()
{
	size_t n; // Number of catfish
	std::vector<long long> arr;

	std::cin >> n;
	long long input;

	// Load data
	for (size_t i = 0; i < n; i++)
	{
		std::cin >> input;
		arr.push_back(input);
	}

	for (size_t i = 0; i < n; i++)
	{
		std::cout << canBeKing(arr, i);
	}

	return 0;

}