#include<iostream> #include<vector> #include<algorithm> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n,k; cin>>n>>k; vector<int>tab(n); for(int i = 0;i<n;++i){ cin>>tab[i]; } vector<int>mini(n); vector<int>maks(n); mini[0]=tab[0]; for(int i = 1;i<n;++i){ mini[i]=min(mini[i-1],tab[i]); } maks[n-1]=tab[n-1]; for(int i = n-2;i>=0;--i){ maks[i]=max(maks[i+1],tab[i]); } if(k==2){ bool jest=false; for(int i = 0;i<n-1;++i){ if(mini[i]>=maks[i+1]){ jest=true; cout<<"TAK"<<endl<<i+1; break; } } if(!jest) cout<<"NIE"; } else if(k==3){ /*int x = 0; if(tab[1]<tab[0]){ cout<<"TAK"<<endl; cout<<1<<" "<<2; } else if(tab[n-1]<tab[n-2]){ cout<<"TAK"<<endl; cout<<n-2<<" "<<n-1; } else{ bool jest = false; for(int i = 1;i<n-1;++i){ if(mini[i-1]) } }*/ int temp=tab[0]; int minii=0; for(int i = 1;i<n;++i){ if(tab[i]<=temp){ temp=tab[i]; minii=i; } } temp=tab[n-1]; int maksi=n-1; for(int i = n-2;i>=0;--i){ if(tab[i]>=temp){ temp=tab[i]; maksi=i; } } if(minii==0 && maksi==n-1){ cout<<"NIE"; } else{ cout<<"TAK"<<endl; if(minii!=0){ cout<<minii<<" "<<minii+1; } else{ cout<<maksi<<" "<<maksi+1; } } } else{ if(tab[1]<=tab[0]){ cout<<"TAK"<<endl; cout<<1<<" "<<2<<" "; int x = 2; k-=2; while(k>1){ cout<<x+1<<" "; ++x;--k; } } else if(tab[n-1]<=tab[n-2]){ cout<<"TAK"<<endl; int x = 0; while(k>3){ cout<<x+1<<" "; ++x;--k; } cout<<n-2<<" "<<n-1; } else{ int x = 1; bool jest = false; while(x<n){ if(tab[x]<=tab[x-1]){ jest=true; break; } ++x; } if(!jest){ cout<<"NIE"; } else{ cout<<"TAK"<<endl; int y = 0; while(y<x-2 && k>4){ cout<<y+1<<" "; ++y; --k; } cout<<x-1<<" "<<x<<" "<<x+1<<" "; y+=3; k-=3; while(k>1){ cout<<y+1<<" "; ++y; --k; } } } } }
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 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | #include<iostream> #include<vector> #include<algorithm> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n,k; cin>>n>>k; vector<int>tab(n); for(int i = 0;i<n;++i){ cin>>tab[i]; } vector<int>mini(n); vector<int>maks(n); mini[0]=tab[0]; for(int i = 1;i<n;++i){ mini[i]=min(mini[i-1],tab[i]); } maks[n-1]=tab[n-1]; for(int i = n-2;i>=0;--i){ maks[i]=max(maks[i+1],tab[i]); } if(k==2){ bool jest=false; for(int i = 0;i<n-1;++i){ if(mini[i]>=maks[i+1]){ jest=true; cout<<"TAK"<<endl<<i+1; break; } } if(!jest) cout<<"NIE"; } else if(k==3){ /*int x = 0; if(tab[1]<tab[0]){ cout<<"TAK"<<endl; cout<<1<<" "<<2; } else if(tab[n-1]<tab[n-2]){ cout<<"TAK"<<endl; cout<<n-2<<" "<<n-1; } else{ bool jest = false; for(int i = 1;i<n-1;++i){ if(mini[i-1]) } }*/ int temp=tab[0]; int minii=0; for(int i = 1;i<n;++i){ if(tab[i]<=temp){ temp=tab[i]; minii=i; } } temp=tab[n-1]; int maksi=n-1; for(int i = n-2;i>=0;--i){ if(tab[i]>=temp){ temp=tab[i]; maksi=i; } } if(minii==0 && maksi==n-1){ cout<<"NIE"; } else{ cout<<"TAK"<<endl; if(minii!=0){ cout<<minii<<" "<<minii+1; } else{ cout<<maksi<<" "<<maksi+1; } } } else{ if(tab[1]<=tab[0]){ cout<<"TAK"<<endl; cout<<1<<" "<<2<<" "; int x = 2; k-=2; while(k>1){ cout<<x+1<<" "; ++x;--k; } } else if(tab[n-1]<=tab[n-2]){ cout<<"TAK"<<endl; int x = 0; while(k>3){ cout<<x+1<<" "; ++x;--k; } cout<<n-2<<" "<<n-1; } else{ int x = 1; bool jest = false; while(x<n){ if(tab[x]<=tab[x-1]){ jest=true; break; } ++x; } if(!jest){ cout<<"NIE"; } else{ cout<<"TAK"<<endl; int y = 0; while(y<x-2 && k>4){ cout<<y+1<<" "; ++y; --k; } cout<<x-1<<" "<<x<<" "<<x+1<<" "; y+=3; k-=3; while(k>1){ cout<<y+1<<" "; ++y; --k; } } } } } |