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