#include <bits/stdc++.h>
#include <stdio.h>
using namespace std;
int n,k, ind_max;
int odp = 0;
int t[500007];
int maksy[500007], miny[500007];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>k;
cin>>t[1];
int maks = t[1];
maksy[1] = t[1];
ind_max = 1;
for(int i=2;i<=n;++i){
cin>>t[i];
if(k>3 && odp==0){
if(t[i]<=maks){
odp = i;
}
else{
maks = t[i];
ind_max = i;
}
}
else if(k==2 || k==3){
maksy[i] = min(maksy[i-1], t[i]);
}
}
miny[n] = t[n];
for(int i=n-1;i>0;--i){
miny[i] = max(miny[i+1], t[i]);
}
if(k==2){
for(int i=1;i<n;i++){
if(maksy[i]>=miny[i+1]){
cout<<"TAK\n";
cout<<i;
return 0;
}
}
}
if(k==3){
for(int i=1;i<n-1;i++){
if(maksy[i]>=t[i+1] || maksy[i] >= miny[i+2] || t[i+1]>=miny[i+2]){
cout<<"TAK\n";
cout<<i<<" "<<i+1;
return 0;
}
}
}
if(odp>0){
cout<<"TAK\n";
int z=1;
int y = k-4;
if(ind_max == 1){
++y;
}
while(z<=y){
if(z==ind_max-1 || z == ind_max || z == odp){
++y;
}
cout<<z<<" ";
z++;
}
if(y==k-4){
cout<<ind_max-1<<" "<<ind_max<<" "<<odp;
}
}
else{
cout<<"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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #include <bits/stdc++.h> #include <stdio.h> using namespace std; int n,k, ind_max; int odp = 0; int t[500007]; int maksy[500007], miny[500007]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>k; cin>>t[1]; int maks = t[1]; maksy[1] = t[1]; ind_max = 1; for(int i=2;i<=n;++i){ cin>>t[i]; if(k>3 && odp==0){ if(t[i]<=maks){ odp = i; } else{ maks = t[i]; ind_max = i; } } else if(k==2 || k==3){ maksy[i] = min(maksy[i-1], t[i]); } } miny[n] = t[n]; for(int i=n-1;i>0;--i){ miny[i] = max(miny[i+1], t[i]); } if(k==2){ for(int i=1;i<n;i++){ if(maksy[i]>=miny[i+1]){ cout<<"TAK\n"; cout<<i; return 0; } } } if(k==3){ for(int i=1;i<n-1;i++){ if(maksy[i]>=t[i+1] || maksy[i] >= miny[i+2] || t[i+1]>=miny[i+2]){ cout<<"TAK\n"; cout<<i<<" "<<i+1; return 0; } } } if(odp>0){ cout<<"TAK\n"; int z=1; int y = k-4; if(ind_max == 1){ ++y; } while(z<=y){ if(z==ind_max-1 || z == ind_max || z == odp){ ++y; } cout<<z<<" "; z++; } if(y==k-4){ cout<<ind_max-1<<" "<<ind_max<<" "<<odp; } } else{ cout<<"NIE"; } return 0; } |
English