#include <bits/stdc++.h>
using namespace std;
#define nd second
#define st first
#define pii pair<int,int>
#define pb push_back
typedef long long ll;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(); cout.tie();
int n;
cin>>n;
vector<ll>v(n);
for(int i=0; i<n; i++)
cin>>v[i];
map<int,vector<int>>m;
for(int i=0; i<n; i++)
m[v[i]].pb(i);
sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());
vector<ll>prefsum(n);
prefsum[0]=v[0]*(ll(m[v[0]].size()));
for(int i=1; i<v.size(); i++)
prefsum[i]=prefsum[i-1]+ll(v[i])*(ll(m[v[i]].size()));
vector<bool>ans(n);
for(int i=v.size()-1; i>0; i--){
for(auto x:m[v[i]])
ans[x]=true;
if(v[i]>=prefsum[i-1])
break;
}
for(auto x:ans){
if(x==false) 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 | #include <bits/stdc++.h> using namespace std; #define nd second #define st first #define pii pair<int,int> #define pb push_back typedef long long ll; int main(){ ios_base::sync_with_stdio(0); cin.tie(); cout.tie(); int n; cin>>n; vector<ll>v(n); for(int i=0; i<n; i++) cin>>v[i]; map<int,vector<int>>m; for(int i=0; i<n; i++) m[v[i]].pb(i); sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end()); vector<ll>prefsum(n); prefsum[0]=v[0]*(ll(m[v[0]].size())); for(int i=1; i<v.size(); i++) prefsum[i]=prefsum[i-1]+ll(v[i])*(ll(m[v[i]].size())); vector<bool>ans(n); for(int i=v.size()-1; i>0; i--){ for(auto x:m[v[i]]) ans[x]=true; if(v[i]>=prefsum[i-1]) break; } for(auto x:ans){ if(x==false) cout<<"N"; else cout<<"T"; } } |
English