#include<iostream>
using namespace std;
int tab[500008];
int maksy[500008];
int minki[500008];
int main(){
int n, k; cin >> n >> k;
int a, popa=0;
int spadek=-1;
int prog=-1;
if(k>=4){
for(int i=0; i<n; i++){
cin >> a;
if(a<=popa){
spadek=a;
}
popa=a;
}
if(spadek==-1){
cout << "NIE";
}
else{
cout << "TAK"<<"\n";
if(k>spadek){
for(int i=0; i<k; i++){
cout << i+1<<" ";
}
}
else{
for(int i=spadek-k+1; i<=spadek; i++){
cout << i<<" ";
}
}
}
}
if(k==3){
int pozmax, maks=0;
int pozmin, mini=1000000008;
for(int i=1; i<=n; i++){
cin >> a;
if(a>maks){
pozmax=i;
maks=a;
}
if(a<=mini){
pozmin=i;
mini=a;
}
}
if(pozmin==n){
cout<<"TAK"<<"\n";
cout << 1 <<" "<< n-1;
}
else{
if(pozmin!=1){
cout <<"TAK" <<"\n";
cout << pozmin-1 << " "<<pozmin;
}
else{
if(pozmax!=n){
cout <<"TAK" << "\n";
cout << pozmax-1 <<" " << pozmax;
}
else{
cout << "NIE";
}
}
}
}
if(k==2){
for(int i=0; i<n; i++){
cin >> tab[i];
minki[i]=1000000008;
}
for(int i=0; i<n; i++){
minki[i]=min(minki[i], tab[i]);
minki[i+1]=minki[i];
}
for(int i=n-1; i>=0; i--){
maksy[i]=max(maksy[i], tab[i]);
if(i>0){
maksy[i-1]=maksy[i];
}
}
for(int i=0; i<n-1; i++){
if(minki[i]>=maksy[i+1]){
prog=i+1;
}
}
if(prog==-1){
cout << "NIE";
}
else{
cout <<"TAK"<<"\n"<< prog;
}
}
}
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 | #include<iostream> using namespace std; int tab[500008]; int maksy[500008]; int minki[500008]; int main(){ int n, k; cin >> n >> k; int a, popa=0; int spadek=-1; int prog=-1; if(k>=4){ for(int i=0; i<n; i++){ cin >> a; if(a<=popa){ spadek=a; } popa=a; } if(spadek==-1){ cout << "NIE"; } else{ cout << "TAK"<<"\n"; if(k>spadek){ for(int i=0; i<k; i++){ cout << i+1<<" "; } } else{ for(int i=spadek-k+1; i<=spadek; i++){ cout << i<<" "; } } } } if(k==3){ int pozmax, maks=0; int pozmin, mini=1000000008; for(int i=1; i<=n; i++){ cin >> a; if(a>maks){ pozmax=i; maks=a; } if(a<=mini){ pozmin=i; mini=a; } } if(pozmin==n){ cout<<"TAK"<<"\n"; cout << 1 <<" "<< n-1; } else{ if(pozmin!=1){ cout <<"TAK" <<"\n"; cout << pozmin-1 << " "<<pozmin; } else{ if(pozmax!=n){ cout <<"TAK" << "\n"; cout << pozmax-1 <<" " << pozmax; } else{ cout << "NIE"; } } } } if(k==2){ for(int i=0; i<n; i++){ cin >> tab[i]; minki[i]=1000000008; } for(int i=0; i<n; i++){ minki[i]=min(minki[i], tab[i]); minki[i+1]=minki[i]; } for(int i=n-1; i>=0; i--){ maksy[i]=max(maksy[i], tab[i]); if(i>0){ maksy[i-1]=maksy[i]; } } for(int i=0; i<n-1; i++){ if(minki[i]>=maksy[i+1]){ prog=i+1; } } if(prog==-1){ cout << "NIE"; } else{ cout <<"TAK"<<"\n"<< prog; } } } |
English