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