#include <bits/stdc++.h> using namespace std; int n, t; long long int a, addsum; vector<pair<long long int, int> >sum; vector<int>sum_sum; int main(){ scanf("%lld", &n); for(int i=0; i<n; i++){ scanf("%lld", &a); sum.push_back(make_pair(a, i)); } sort(sum.begin(), sum.end()); addsum=sum[0].first; for(int i=1; i<n-1; i++){ addsum+=sum[i].first; if(sum[i+1].first<addsum && sum[i].first!=sum[i-1].first){ sum_sum.push_back(sum[i].second); } else if(sum_sum.size()>0)sum_sum.clear(); } sum_sum.push_back(sum[n-1].second); sort(sum_sum.begin(), sum_sum.end()); for(int i=0; i<n; i++){ if(i==sum_sum[t]){ printf("T"); t++; } else printf("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 | #include <bits/stdc++.h> using namespace std; int n, t; long long int a, addsum; vector<pair<long long int, int> >sum; vector<int>sum_sum; int main(){ scanf("%lld", &n); for(int i=0; i<n; i++){ scanf("%lld", &a); sum.push_back(make_pair(a, i)); } sort(sum.begin(), sum.end()); addsum=sum[0].first; for(int i=1; i<n-1; i++){ addsum+=sum[i].first; if(sum[i+1].first<addsum && sum[i].first!=sum[i-1].first){ sum_sum.push_back(sum[i].second); } else if(sum_sum.size()>0)sum_sum.clear(); } sum_sum.push_back(sum[n-1].second); sort(sum_sum.begin(), sum_sum.end()); for(int i=0; i<n; i++){ if(i==sum_sum[t]){ printf("T"); t++; } else printf("N"); } } |