#include <bits/stdc++.h> using namespace std; void recur(vector<pair<int, int>> &wagi, vector<int> &pref, vector<bool> &czy, int i, int ile, int n){ if (i == n-1) return; pref[i] = pref[max(i-1, 0)] + wagi[i].first; if (wagi[i].first + ile > wagi[i+1].first) { recur(wagi, pref, czy, i+1, pref[i], n); czy[wagi[i].second] = czy[wagi[i+1].second]; } if (wagi[i].first == wagi[i+1].first && ile == 0) { recur(wagi, pref, czy, i + 1, 0, n); czy[wagi[i].second] = czy[wagi[i+1].second]; } else recur(wagi, pref, czy, i+1, pref[i], n); } int main(){ int n; cin >> n; vector<pair<int, int>> wagi; int x = 0; int pop = 3; bool czy = false; for (int i = 0; i < n; i++){ cin >> x; if (i && x != pop) czy = true; wagi.push_back(make_pair(x, i)); pop = x; } sort(wagi.begin(), wagi.end()); vector<int> pref(n, 0); vector<bool> cczy(n); cczy[wagi[n-1].second] = czy; recur(wagi, pref, cczy, 0, 0, n); for (int i = 0; i < n; i++){ if (cczy[i]) cout << "T"; else cout << "N"; } return 0; }
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 | #include <bits/stdc++.h> using namespace std; void recur(vector<pair<int, int>> &wagi, vector<int> &pref, vector<bool> &czy, int i, int ile, int n){ if (i == n-1) return; pref[i] = pref[max(i-1, 0)] + wagi[i].first; if (wagi[i].first + ile > wagi[i+1].first) { recur(wagi, pref, czy, i+1, pref[i], n); czy[wagi[i].second] = czy[wagi[i+1].second]; } if (wagi[i].first == wagi[i+1].first && ile == 0) { recur(wagi, pref, czy, i + 1, 0, n); czy[wagi[i].second] = czy[wagi[i+1].second]; } else recur(wagi, pref, czy, i+1, pref[i], n); } int main(){ int n; cin >> n; vector<pair<int, int>> wagi; int x = 0; int pop = 3; bool czy = false; for (int i = 0; i < n; i++){ cin >> x; if (i && x != pop) czy = true; wagi.push_back(make_pair(x, i)); pop = x; } sort(wagi.begin(), wagi.end()); vector<int> pref(n, 0); vector<bool> cczy(n); cczy[wagi[n-1].second] = czy; recur(wagi, pref, cczy, 0, 0, n); for (int i = 0; i < n; i++){ if (cczy[i]) cout << "T"; else cout << "N"; } return 0; } |