#include<iostream> #include<algorithm> using namespace std; pair <long long,int> k[500007]; long long t[500007]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int a,m=1; cin>>a; for(int i=1;i<=a;i++) { int w; cin>>w; k[i]=make_pair(w,i); } sort(k+1,k+a+1); for(int i=1;i<=a;i++) { if(t[i-1]<=k[i].first) { m=i-1; } if(k[i-1].first==k[i].first && m==i-1) { m=i; } t[i]=t[i-1]+k[i].first; } for(int i=1;i<=m;i++) { t[k[i].second]=0; } for(int i=m+1;i<=a;i++) { t[k[i].second]=1; } for(int i=1;i<=a;i++) { if(t[i]==0) { cout<<"N"; }else{ cout<<"T"; } } }
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 | #include<iostream> #include<algorithm> using namespace std; pair <long long,int> k[500007]; long long t[500007]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int a,m=1; cin>>a; for(int i=1;i<=a;i++) { int w; cin>>w; k[i]=make_pair(w,i); } sort(k+1,k+a+1); for(int i=1;i<=a;i++) { if(t[i-1]<=k[i].first) { m=i-1; } if(k[i-1].first==k[i].first && m==i-1) { m=i; } t[i]=t[i-1]+k[i].first; } for(int i=1;i<=m;i++) { t[k[i].second]=0; } for(int i=m+1;i<=a;i++) { t[k[i].second]=1; } for(int i=1;i<=a;i++) { if(t[i]==0) { cout<<"N"; }else{ cout<<"T"; } } } |