#include <bits/stdc++.h> using namespace std; vector<pair<long long,int>>A; char odp[500009]; bool CzyMozna(int ind) { if(ind<0){return 0;} if(ind>=A.size()){return 1;} long long masa=A[ind].first; for(int i=0;i<A.size();i++) { if(i!=ind) { if(A[i].first>=masa){return 0;} masa+=A[i].first; } } return 1; } int Program() { int l=-1; int p=A.size(); while(l!=p&&l+1!=p) { int srodek=(l+p)/2; if(CzyMozna(srodek)==0) { l=srodek; } else { p=srodek; } } if(CzyMozna(l)==1){return l;} else{return p;} } int main() {ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; for(int i=1;i<=n;i++) { long long x; cin>>x; A.push_back({x,i}); } sort(A.begin(),A.end()); int ind=Program(); for(int i=0;i<ind;i++) { odp[A[i].second]='N'; } for(int i=ind;i<A.size();i++) { odp[A[i].second]='T'; } for(int i=1;i<=n;i++) { cout<<odp[i]; } 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 54 55 56 57 58 59 60 61 62 63 64 | #include <bits/stdc++.h> using namespace std; vector<pair<long long,int>>A; char odp[500009]; bool CzyMozna(int ind) { if(ind<0){return 0;} if(ind>=A.size()){return 1;} long long masa=A[ind].first; for(int i=0;i<A.size();i++) { if(i!=ind) { if(A[i].first>=masa){return 0;} masa+=A[i].first; } } return 1; } int Program() { int l=-1; int p=A.size(); while(l!=p&&l+1!=p) { int srodek=(l+p)/2; if(CzyMozna(srodek)==0) { l=srodek; } else { p=srodek; } } if(CzyMozna(l)==1){return l;} else{return p;} } int main() {ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; for(int i=1;i<=n;i++) { long long x; cin>>x; A.push_back({x,i}); } sort(A.begin(),A.end()); int ind=Program(); for(int i=0;i<ind;i++) { odp[A[i].second]='N'; } for(int i=ind;i<A.size();i++) { odp[A[i].second]='T'; } for(int i=1;i<=n;i++) { cout<<odp[i]; } return 0; } |