#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; } |
English