#include<bits/stdc++.h>
using namespace std;
const int MAXN=5e5+9;
int t[MAXN];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>t[i];
}
if(k==2){
int minx[n+1];
minx[0]=1e9+7;
for(int i=1;i<=n;i++){
minx[i]=min(t[i],minx[i-1]);
}
int maxx=t[n];
for(int i=n-1;i>0;i--){
if(minx[i]>=maxx){
cout<<"TAK\n";
cout<<i;
return 0;
}
maxx=max(t[i],maxx);
}
cout<<"NIE";
return 0;
}
if(k==3){
int mimi=t[1];
for(int i=2;i<n;i++){
if(mimi>=t[i]){
cout<<"TAK\n";
cout<<i-1<<" "<<i;
return 0;
}
mimi=min(mimi,t[i]);
}for(int i=n-1;i>0;i--){
if(t[i]>=t[n]){
cout<<"TAK\n";
cout<<i-1<<" "<<i;
return 0;
}
}
cout<<"NIE";
return 0;
}
bool yes=0;
vector<bool> wyn(n+1,0);
int lwyn=0;
for(int i=2;i<=n;i++){
if(t[i-1]>=t[i]){
yes=1;
if(i!=2){
wyn[i-2]=1;
lwyn++;
}
wyn[i-1]=1;
if(i!=n){
wyn[i]=1;
lwyn++;
}
lwyn++;
break;
}
}
if(!yes){
cout<<"NIE";
return 0;
}
cout<<"TAK\n";
for(int i=1;i<n;i++){
if(!wyn[i]&&(lwyn<(k-1))){
cout<<i<<" ";
lwyn++;
}
if(wyn[i]==1)
cout<<i<<" ";
}
}
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 | #include<bits/stdc++.h> using namespace std; const int MAXN=5e5+9; int t[MAXN]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n,k; cin>>n>>k; for(int i=1;i<=n;i++){ cin>>t[i]; } if(k==2){ int minx[n+1]; minx[0]=1e9+7; for(int i=1;i<=n;i++){ minx[i]=min(t[i],minx[i-1]); } int maxx=t[n]; for(int i=n-1;i>0;i--){ if(minx[i]>=maxx){ cout<<"TAK\n"; cout<<i; return 0; } maxx=max(t[i],maxx); } cout<<"NIE"; return 0; } if(k==3){ int mimi=t[1]; for(int i=2;i<n;i++){ if(mimi>=t[i]){ cout<<"TAK\n"; cout<<i-1<<" "<<i; return 0; } mimi=min(mimi,t[i]); }for(int i=n-1;i>0;i--){ if(t[i]>=t[n]){ cout<<"TAK\n"; cout<<i-1<<" "<<i; return 0; } } cout<<"NIE"; return 0; } bool yes=0; vector<bool> wyn(n+1,0); int lwyn=0; for(int i=2;i<=n;i++){ if(t[i-1]>=t[i]){ yes=1; if(i!=2){ wyn[i-2]=1; lwyn++; } wyn[i-1]=1; if(i!=n){ wyn[i]=1; lwyn++; } lwyn++; break; } } if(!yes){ cout<<"NIE"; return 0; } cout<<"TAK\n"; for(int i=1;i<n;i++){ if(!wyn[i]&&(lwyn<(k-1))){ cout<<i<<" "; lwyn++; } if(wyn[i]==1) cout<<i<<" "; } } |
English