#include <iostream>
#include <bits/stdc++.h>
using namespace std;
long long n, a, suma, wyn[100000], sumy[1000000], pom;
vector <pair <long long, long long>> tab;
int main()
{
cin>>n;
for(int i=0; i<n; i++)
{
cin>>a;
tab.push_back(make_pair(a, i));
}
sort(tab.begin(), tab.end());
suma = tab[0].first;
sumy[0] = 0;
for(int i=1; i<n-1; i++)
{
pom = i-1;
while (tab[i].first == tab[pom].first) pom--;
sumy[i] = sumy[pom] + tab[i].first;
if (sumy[i] > tab[i+1].first) wyn[tab[i].second] = 1;
else wyn[tab[i].second] = 0;
}
wyn[tab[n-1].second] = 1;
for(int i=0; i<n; i++)
{
if (wyn[i] == 0) cout<<"N";
else cout<<"T";
}
}
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 | #include <iostream> #include <bits/stdc++.h> using namespace std; long long n, a, suma, wyn[100000], sumy[1000000], pom; vector <pair <long long, long long>> tab; int main() { cin>>n; for(int i=0; i<n; i++) { cin>>a; tab.push_back(make_pair(a, i)); } sort(tab.begin(), tab.end()); suma = tab[0].first; sumy[0] = 0; for(int i=1; i<n-1; i++) { pom = i-1; while (tab[i].first == tab[pom].first) pom--; sumy[i] = sumy[pom] + tab[i].first; if (sumy[i] > tab[i+1].first) wyn[tab[i].second] = 1; else wyn[tab[i].second] = 0; } wyn[tab[n-1].second] = 1; for(int i=0; i<n; i++) { if (wyn[i] == 0) cout<<"N"; else cout<<"T"; } } |
English