#include <bits/stdc++.h> using namespace std; int n, a, gdzie, co; pair <int,int> t[1000007]; bool tw[1000007]={}, xd, fuck=0; long long w; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin>>n; for(int i=0;i<n;i++) { cin>>a; t[i]=make_pair(a, i); } for(int i=1;i<n;i++) { if(t[i].first!=t[i-1].first) {fuck=1; break;} } if(!fuck) for(int i=0;i<n;i++) { cout<<"N"; } sort(t, t+n); int p=0; int k=n-1; int sr; while(k-p>4) { sr=(p+k)/2; w=t[sr].first; xd=0; for(int i=0;i<n;i++) { if(sr==i) co++; else if(w>t[i].first) w+=t[i].first; else {xd=1; break;} } if(xd) p=sr; else k=sr; } for(int q=p;q<=k;q++) { w=t[q].first; xd=0; for(int i=0;i<n;i++) { if(q==i) co++; else if(w>t[i].first) w+=t[i].first; else {xd=1; break;} } if(!xd) {gdzie=q; break;} } for(int i=gdzie;i<n;i++) { tw[t[i].second]=1; } for(int i=0;i<n && fuck;i++) { if(tw[i]) cout<<"T"; else cout<<"N"; } 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 65 66 | #include <bits/stdc++.h> using namespace std; int n, a, gdzie, co; pair <int,int> t[1000007]; bool tw[1000007]={}, xd, fuck=0; long long w; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin>>n; for(int i=0;i<n;i++) { cin>>a; t[i]=make_pair(a, i); } for(int i=1;i<n;i++) { if(t[i].first!=t[i-1].first) {fuck=1; break;} } if(!fuck) for(int i=0;i<n;i++) { cout<<"N"; } sort(t, t+n); int p=0; int k=n-1; int sr; while(k-p>4) { sr=(p+k)/2; w=t[sr].first; xd=0; for(int i=0;i<n;i++) { if(sr==i) co++; else if(w>t[i].first) w+=t[i].first; else {xd=1; break;} } if(xd) p=sr; else k=sr; } for(int q=p;q<=k;q++) { w=t[q].first; xd=0; for(int i=0;i<n;i++) { if(q==i) co++; else if(w>t[i].first) w+=t[i].first; else {xd=1; break;} } if(!xd) {gdzie=q; break;} } for(int i=gdzie;i<n;i++) { tw[t[i].second]=1; } for(int i=0;i<n && fuck;i++) { if(tw[i]) cout<<"T"; else cout<<"N"; } return 0; } |