#include<bits/stdc++.h>
using namespace std;
pair<int, int>tab[500010];
bool czy[500010];
int main()
{
int n, i;
long long s=0;
scanf("%d", &n);
for(i=0;i<n;i++)
{
scanf("%d", &tab[i].first);
tab[i].second=i;
s+=tab[i].first;
}
sort(tab, tab+n);
if(tab[0].first==tab[n-1].first)
{
for(i=0;i<n;i++)
printf("N");
return 0;
}
czy[tab[n-1].second]=1;
s-=tab[n-1].first;
for(i=n-2;i>=0;i--)
{
if(tab[i].first==tab[0].first)
{
s=tab[i].first;
}
if(s>tab[i+1].first)
{
s-=tab[i].first;
czy[tab[i].second]=1;
}
else
break;
}
for(i=0;i<n;i++)
{
if(czy[i]==1)
printf("T");
else
printf("N");
}
}
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 | #include<bits/stdc++.h> using namespace std; pair<int, int>tab[500010]; bool czy[500010]; int main() { int n, i; long long s=0; scanf("%d", &n); for(i=0;i<n;i++) { scanf("%d", &tab[i].first); tab[i].second=i; s+=tab[i].first; } sort(tab, tab+n); if(tab[0].first==tab[n-1].first) { for(i=0;i<n;i++) printf("N"); return 0; } czy[tab[n-1].second]=1; s-=tab[n-1].first; for(i=n-2;i>=0;i--) { if(tab[i].first==tab[0].first) { s=tab[i].first; } if(s>tab[i+1].first) { s-=tab[i].first; czy[tab[i].second]=1; } else break; } for(i=0;i<n;i++) { if(czy[i]==1) printf("T"); else printf("N"); } } |
English