#include <bits/stdc++.h> #define _2137 0 #define pb push_back #define ff first #define ss second using namespace std; bool ans[500009]; int main() { int n; scanf("%d",&n); int tab[n+1]; vector <pair <int,int>> que; unsigned long long out=0; for(int i=0;i<n;++i){ scanf("%d",&tab[i]); //if(tab[i]>maX) maX=tab[i]; que.pb({tab[i],i}); } sort(que.begin(),que.end()); /* for(int i=0;i<n;++i){ cout<<que[i].ff<<" "<<que[i].ss<<endl; } */ if(que[0].ff==que[n-1].ff){ for(int i=0;i<n;++i){ printf("N"); } return _2137; } int j=0,last=n-1; while(j<n-1){ out+=que[j].ff; if(out<=que[j+1].ff) { last=j; } //cout<<out<<" "<<que[j+1].ff<<" "<<last<<endl; ++j; } j=last+1; //cout<<j<<endl; while(que[0].ff==que[j].ff && j<=n){ ++j; } while(que[j].ff==que[j-1].ff && j>0){ --j; } for(int i=j;i<n;++i){ ans[que[i].ss]=true; } for(int i=0;i<n;++i){ if(ans[i]) printf("T"); else printf("N"); } return _2137; }
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | #include <bits/stdc++.h> #define _2137 0 #define pb push_back #define ff first #define ss second using namespace std; bool ans[500009]; int main() { int n; scanf("%d",&n); int tab[n+1]; vector <pair <int,int>> que; unsigned long long out=0; for(int i=0;i<n;++i){ scanf("%d",&tab[i]); //if(tab[i]>maX) maX=tab[i]; que.pb({tab[i],i}); } sort(que.begin(),que.end()); /* for(int i=0;i<n;++i){ cout<<que[i].ff<<" "<<que[i].ss<<endl; } */ if(que[0].ff==que[n-1].ff){ for(int i=0;i<n;++i){ printf("N"); } return _2137; } int j=0,last=n-1; while(j<n-1){ out+=que[j].ff; if(out<=que[j+1].ff) { last=j; } //cout<<out<<" "<<que[j+1].ff<<" "<<last<<endl; ++j; } j=last+1; //cout<<j<<endl; while(que[0].ff==que[j].ff && j<=n){ ++j; } while(que[j].ff==que[j-1].ff && j>0){ --j; } for(int i=j;i<n;++i){ ans[que[i].ss]=true; } for(int i=0;i<n;++i){ if(ans[i]) printf("T"); else printf("N"); } return _2137; } |