#include <cstdio> #include <algorithm> int a[500000], x[500000]; int main() { int n, k, p; scanf("%i%i", &n, &k); for (int i=0; i<n; i++) scanf("%i", &a[i]); for (int i=n-1; i>=0; i--) x[i]=i<n-1? std::max(x[i+1],a[i]): a[i]; if (k<2) puts("NIE"); else if (k==2) { for (int i=0; i<n-1; i++) { p = i>0? std::min(p,a[i]): a[i]; if (p >= x[i+1]) { printf("TAK\n%i\n", i+1); return 0; } } puts("NIE"); } else if (k==3) { for (int i=0; i<n-2; i++) { p = i>0? std::min(p,a[i]): a[i]; if (p >= a[i+1] || a[i+1] >= x[i+2]) { printf("TAK\n%i %i\n", i+1, i+2); return 0; } } puts("NIE"); } else { for (int i=0; i<n-1; i++) { if (a[i] >= a[i+1]) { puts("TAK"); for (int j=1; j<k; j++) printf("%i%c", i+j-1+(i<1)-std::max(k+i-n-1,0), " \n"[j==k-1]); return 0; } } puts("NIE"); } 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 46 47 48 49 50 51 52 53 54 55 56 | #include <cstdio> #include <algorithm> int a[500000], x[500000]; int main() { int n, k, p; scanf("%i%i", &n, &k); for (int i=0; i<n; i++) scanf("%i", &a[i]); for (int i=n-1; i>=0; i--) x[i]=i<n-1? std::max(x[i+1],a[i]): a[i]; if (k<2) puts("NIE"); else if (k==2) { for (int i=0; i<n-1; i++) { p = i>0? std::min(p,a[i]): a[i]; if (p >= x[i+1]) { printf("TAK\n%i\n", i+1); return 0; } } puts("NIE"); } else if (k==3) { for (int i=0; i<n-2; i++) { p = i>0? std::min(p,a[i]): a[i]; if (p >= a[i+1] || a[i+1] >= x[i+2]) { printf("TAK\n%i %i\n", i+1, i+2); return 0; } } puts("NIE"); } else { for (int i=0; i<n-1; i++) { if (a[i] >= a[i+1]) { puts("TAK"); for (int j=1; j<k; j++) printf("%i%c", i+j-1+(i<1)-std::max(k+i-n-1,0), " \n"[j==k-1]); return 0; } } puts("NIE"); } return 0; } |