#include <bits/stdc++.h> using namespace std; int main() { int n, k; cin >> n >> k; --k; bool ok = false; vector <int> pod (n), odp; for (auto &i : pod) cin >> i; int i = n-1, j = n-1; //do { while (i >= 0 and k > 0) { if (k > i+1) { cout << "NIE"; return 0;} else if (k > i) { if (not ok) for (int ii = i; ii > 0; --ii) if (pod[ii] <= pod[ii - 1]){ ok = true; break; } if (ok) { cout << "TAK\n"; for (int ii = 1; ii < k; ++ii) cout << ii << ' '; for (int ii{odp.size() - 1}; ii >= 0; --ii) cout << odp[ii] << ' '; return 0; } } --i; if (pod[i] >= pod[j]) { odp.push_back(i + 1); --k; if (k and i > 0) { odp.push_back(i); --k, --i; ok = true; } j = i; } } //cout << k << endl; if (not (ok and k==0)) cout << "NIE\n"; else { cout << "TAK\n"; for (int ii{odp.size() - 1}; ii >= 0; --ii) cout << odp[ii] << ' '; } }
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 50 51 52 53 54 55 56 | #include <bits/stdc++.h> using namespace std; int main() { int n, k; cin >> n >> k; --k; bool ok = false; vector <int> pod (n), odp; for (auto &i : pod) cin >> i; int i = n-1, j = n-1; //do { while (i >= 0 and k > 0) { if (k > i+1) { cout << "NIE"; return 0;} else if (k > i) { if (not ok) for (int ii = i; ii > 0; --ii) if (pod[ii] <= pod[ii - 1]){ ok = true; break; } if (ok) { cout << "TAK\n"; for (int ii = 1; ii < k; ++ii) cout << ii << ' '; for (int ii{odp.size() - 1}; ii >= 0; --ii) cout << odp[ii] << ' '; return 0; } } --i; if (pod[i] >= pod[j]) { odp.push_back(i + 1); --k; if (k and i > 0) { odp.push_back(i); --k, --i; ok = true; } j = i; } } //cout << k << endl; if (not (ok and k==0)) cout << "NIE\n"; else { cout << "TAK\n"; for (int ii{odp.size() - 1}; ii >= 0; --ii) cout << odp[ii] << ' '; } } |