#include <bits/stdc++.h> using namespace std; #define st first #define nd second #define int long long main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; vector<int> v; vector<int> vres; for(int i=0; i<n; i++) { int x; cin>>x; v.push_back(x); vres.push_back(x); } sort(v.begin(), v.end()); vector<int> sum(n); sum[0]=v[0]; for(int i=1; i<n; i++) sum[i]=sum[i-1]+v[i]; map<int,bool> M; for(int i=0; i<n; i++) { int ile=v[i]; int g=-1; bool ok=1; bool res=0; while(ok) { auto bs = lower_bound(v.begin(), v.end(), ile); if(bs==v.end()) { ok=0; res=1; break; } int ind = bs-v.begin(); if(v[ind]>=ile) ind--; //cout<<ile<<" "<<ind<<endl; if(g>=ind) ok=0; else { g=ind; ile=sum[ind]; if(ind<i) ile+=v[i]; } } if(res) M[v[i]]=1; } for(int i=0; i<vres.size(); i++) { if(M[vres[i]]==1) cout<<'T'; else cout<<'N'; } }
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 | #include <bits/stdc++.h> using namespace std; #define st first #define nd second #define int long long main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; vector<int> v; vector<int> vres; for(int i=0; i<n; i++) { int x; cin>>x; v.push_back(x); vres.push_back(x); } sort(v.begin(), v.end()); vector<int> sum(n); sum[0]=v[0]; for(int i=1; i<n; i++) sum[i]=sum[i-1]+v[i]; map<int,bool> M; for(int i=0; i<n; i++) { int ile=v[i]; int g=-1; bool ok=1; bool res=0; while(ok) { auto bs = lower_bound(v.begin(), v.end(), ile); if(bs==v.end()) { ok=0; res=1; break; } int ind = bs-v.begin(); if(v[ind]>=ile) ind--; //cout<<ile<<" "<<ind<<endl; if(g>=ind) ok=0; else { g=ind; ile=sum[ind]; if(ind<i) ile+=v[i]; } } if(res) M[v[i]]=1; } for(int i=0; i<vres.size(); i++) { if(M[vres[i]]==1) cout<<'T'; else cout<<'N'; } } |