#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, k; cin >> n >> k; if(k > 3) { int pre = 0; int cur = 0; for(int i = 0; i < n; i++) { cin >> cur; if(i == 0) { pre = cur; continue; } if(cur < pre) { cout << "TAK\n"; if(i == n - 1) { i--; } for(int j = 1; j < i - 1 && j < k - 2; j++) { cout << j << " "; } cout << i << " " << i + 1 << " "; for(int j = i + 2; j < k; j++) { cout << j << " "; } return 0; } pre = cur; } cout << "NIE"; } else if(k == 3) { int x; int maxi = 0; int maxx = 0; int mini = 0; int minx = 1000000001; for(int i = 0; i < n; i++) { cin >> x; if(x >= maxx) maxi = i, maxx = x; if(x < minx) mini = i, minx = x; } if(maxi < n - 1) { cout << "TAK\n" << maxi << " " << maxi + 1; } else if(mini > 0) { cout << "TAK\n" << mini << " " << mini + 1; } else cout << "NIE"; } else { int ciag[n]; int mini[n]; int maxi[n]; for(int i = 0; i < n; i++) { cin >> ciag[i]; if(i > 0) mini[i] = min(ciag[i], mini[i - 1]); else mini[i] = ciag[i]; } for(int i = n - 1; i > 0; i--) { if(i < n - 1) maxi[i] = max(ciag[i], maxi[i + 1]); else maxi[i] = ciag[i]; if(mini[i - 1] > maxi[i]) { cout << "TAK\n" << i; return 0; } } cout << "NIE"; } }
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | #include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, k; cin >> n >> k; if(k > 3) { int pre = 0; int cur = 0; for(int i = 0; i < n; i++) { cin >> cur; if(i == 0) { pre = cur; continue; } if(cur < pre) { cout << "TAK\n"; if(i == n - 1) { i--; } for(int j = 1; j < i - 1 && j < k - 2; j++) { cout << j << " "; } cout << i << " " << i + 1 << " "; for(int j = i + 2; j < k; j++) { cout << j << " "; } return 0; } pre = cur; } cout << "NIE"; } else if(k == 3) { int x; int maxi = 0; int maxx = 0; int mini = 0; int minx = 1000000001; for(int i = 0; i < n; i++) { cin >> x; if(x >= maxx) maxi = i, maxx = x; if(x < minx) mini = i, minx = x; } if(maxi < n - 1) { cout << "TAK\n" << maxi << " " << maxi + 1; } else if(mini > 0) { cout << "TAK\n" << mini << " " << mini + 1; } else cout << "NIE"; } else { int ciag[n]; int mini[n]; int maxi[n]; for(int i = 0; i < n; i++) { cin >> ciag[i]; if(i > 0) mini[i] = min(ciag[i], mini[i - 1]); else mini[i] = ciag[i]; } for(int i = n - 1; i > 0; i--) { if(i < n - 1) maxi[i] = max(ciag[i], maxi[i + 1]); else maxi[i] = ciag[i]; if(mini[i - 1] > maxi[i]) { cout << "TAK\n" << i; return 0; } } cout << "NIE"; } } |