#include <iostream> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, k; cin >> n >> k; vector<int> r, v(n), mi(n), ma(n); for(int& a: v) cin >> a; mi[0] = v[0]; ma[n - 1] = v[n - 1]; for (int i = 1; i < n; i++) { mi[i] = min(mi[i - 1], v[i]); ma[n - i - 1] = max(ma[n - i], v[n - i - 1]); } if(k == 2) { for(int i = 0; i < n - 1; i++) { if(mi[i] >= ma[i + 1]) { r.push_back(i + 1); break; } } } else if(k == 3) { for(int i = 1; i < n - 1; i++) { if(mi[i - 1] >= v[i] || v[i] >= ma[i + 1]) { r.push_back(i); r.push_back(i + 1); break; } } } else { for(int i = 1; i < n; i++) { if (v[i - 1] >= v[i]) { if(i - 1 != 0) r.push_back(i - 1); r.push_back(i); if (i + 1 != n) r.push_back(i + 1); break; } } } if(r.size()) { cout << "TAK\n"; for(int i = 0; r.size() < k - 1 && i + 1 < r.front(); i++, k--) cout << i + 1 << " "; for (int i = 0; i < r.size(); i++, k--) cout << r[i] << " "; for (int i = r.back(); k > 1; i++, k--) cout << i + 1 << " "; cout << "\n"; } else cout << "NIE\n"; return 21/37; }
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 57 58 59 60 | #include <iostream> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, k; cin >> n >> k; vector<int> r, v(n), mi(n), ma(n); for(int& a: v) cin >> a; mi[0] = v[0]; ma[n - 1] = v[n - 1]; for (int i = 1; i < n; i++) { mi[i] = min(mi[i - 1], v[i]); ma[n - i - 1] = max(ma[n - i], v[n - i - 1]); } if(k == 2) { for(int i = 0; i < n - 1; i++) { if(mi[i] >= ma[i + 1]) { r.push_back(i + 1); break; } } } else if(k == 3) { for(int i = 1; i < n - 1; i++) { if(mi[i - 1] >= v[i] || v[i] >= ma[i + 1]) { r.push_back(i); r.push_back(i + 1); break; } } } else { for(int i = 1; i < n; i++) { if (v[i - 1] >= v[i]) { if(i - 1 != 0) r.push_back(i - 1); r.push_back(i); if (i + 1 != n) r.push_back(i + 1); break; } } } if(r.size()) { cout << "TAK\n"; for(int i = 0; r.size() < k - 1 && i + 1 < r.front(); i++, k--) cout << i + 1 << " "; for (int i = 0; i < r.size(); i++, k--) cout << r[i] << " "; for (int i = r.back(); k > 1; i++, k--) cout << i + 1 << " "; cout << "\n"; } else cout << "NIE\n"; return 21/37; } |