#include <bits/stdc++.h>
using namespace std;
struct sum{
long long war,ind;
};
bool operator < (sum a,sum b){
if(a.war<b.war) return 1;
return 0;
}
sum ts[500001];
long long ow[500001];
long long n,s,wn;
int main()
{
scanf("%lld",&n);
for(int i=0;i<n;i++){
scanf("%lld",&ts[i].war);
ts[i].ind=i;
ow[i]=ts[i].war;
s+=ts[i].war;
}
sort(ts,ts+n);
wn=-1;
for(int i=n-1;i>0;i--){
//printf("%lld %lld\n",ts[i].war,s);
s-=ts[i].war;
if((ts[i].war!=ts[i+1].war)){
if(s+ts[i].war<=ts[i+1].war){
wn=ts[i].war;
break;
}
}
}
if(wn==-1) wn=ts[0].war;
if(ts[0].war==ts[n-1].war){
//printf("aaa");
wn=1000000009;
}
for(int i=0;i<n;i++){
if(ow[i]<=wn){
printf("N");
}else{
printf("T");
}
}
return 0;
}
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 | #include <bits/stdc++.h> using namespace std; struct sum{ long long war,ind; }; bool operator < (sum a,sum b){ if(a.war<b.war) return 1; return 0; } sum ts[500001]; long long ow[500001]; long long n,s,wn; int main() { scanf("%lld",&n); for(int i=0;i<n;i++){ scanf("%lld",&ts[i].war); ts[i].ind=i; ow[i]=ts[i].war; s+=ts[i].war; } sort(ts,ts+n); wn=-1; for(int i=n-1;i>0;i--){ //printf("%lld %lld\n",ts[i].war,s); s-=ts[i].war; if((ts[i].war!=ts[i+1].war)){ if(s+ts[i].war<=ts[i+1].war){ wn=ts[i].war; break; } } } if(wn==-1) wn=ts[0].war; if(ts[0].war==ts[n-1].war){ //printf("aaa"); wn=1000000009; } for(int i=0;i<n;i++){ if(ow[i]<=wn){ printf("N"); }else{ printf("T"); } } return 0; } |
English