#include<bits/stdc++.h>
using namespace std;
int n;
bool vis[1000005];
struct node
{
int a;
int ii;
}e[1000005];
bool cmp(const node &x,const node &y)
{
if(x.a<y.a)
return true;
return false;
}
bool check(int j)
{
int ans=0;
for(int i=0;i<j;i++)
{
if(e[i].a!=e[j].a)
ans+=e[i].a;
}
ans+=e[j].a;
for(int i=j+1;i<n;i++)
{
if(ans>e[i].a)
ans+=e[i].a;
else
return false;
}
return true;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>e[i].a;
e[i].ii=i;
}
sort(e,e+n,cmp);
int l=0,r=n-1,res=n+1;
while(l<=r)
{
int mid=(l+r)/2;
if(check(mid))
{
res=mid;
r=mid-1;
}
else
{
// res=mid;
l=mid+1;
}
}
// cout<<res;
// cout<<check(3);
for(int i=0;i<res;i++)
{
vis[e[i].ii]=1;
}
for(int i=0;i<n;i++)
{
if(vis[i]==1)
cout<<'N';
else
cout<<'T';
}
return 0;
}
求助大佬 谢谢qaq