#include <bits/stdc++.h>
using namespace std;
const int N = 500'007;
int n, a[N], ii[N];
int main() {
ios::sync_with_stdio(false), cin.tie(nullptr);
cin >> n;
for(int i = 0; i < n; i++)
cin >> a[i], ii[i] = i;
sort(ii, ii + n, [](int x, int y) { return a[x] < a[y]; });
int l = 0, r = n;
while(r - l > 1) {
int m = (l + r) >> 1;
long long sum = a[ii[m]];
bool ok = true;
for(int i = 0; i < n; i++) if(i != m) {
if(sum <= a[ii[i]]) {
ok = false;
break;
}
sum += a[ii[i]];
}
if(ok) r = m;
else l = m;
}
for(int i = 0; i < n; i++)
cout << "NT"[a[ii[l]] < a[i]];
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 | #include <bits/stdc++.h> using namespace std; const int N = 500'007; int n, a[N], ii[N]; int main() { ios::sync_with_stdio(false), cin.tie(nullptr); cin >> n; for(int i = 0; i < n; i++) cin >> a[i], ii[i] = i; sort(ii, ii + n, [](int x, int y) { return a[x] < a[y]; }); int l = 0, r = n; while(r - l > 1) { int m = (l + r) >> 1; long long sum = a[ii[m]]; bool ok = true; for(int i = 0; i < n; i++) if(i != m) { if(sum <= a[ii[i]]) { ok = false; break; } sum += a[ii[i]]; } if(ok) r = m; else l = m; } for(int i = 0; i < n; i++) cout << "NT"[a[ii[l]] < a[i]]; cout << '\n'; } |
English