#include <iostream> #include <vector> int main(){ std::ios_base::sync_with_stdio(0); std::vector<int> wys; int n,k,v; std::cin>>n>>k; for(int i=0;i<n;i++){ std::cin>>v; wys.emplace_back(v); } if(k==2){ int minpref=wys[0]; int min=wys[0]; int result=0; for(int i=1;i<n;i++){ if(wys[i]<min) min=wys[i]; if(wys[i]>minpref){ minpref=min; result=i; } } if(result==n-1) std::cout<<"NIE"<<std::endl; else std::cout<<"TAK"<<std::endl<<result+1<<std::endl; }else if(k==3){ int max=0; int maxpoz=0; for(int i=0;i<n;i++) if(wys[i]>max){ max=wys[i]; maxpoz=i; } if(maxpoz!=n-1){ std::cout<<"TAK"<<std::endl<<maxpoz<<" "<<maxpoz+1<<std::endl; return 0; } int min=1000*1000*1000+1; int minpoz=0; for(int i=n-1;i>=0;i--) if(wys[i]<min){ min=wys[i]; minpoz=i; } if(minpoz!=0){ std::cout<<"TAK"<<std::endl<<minpoz<<" "<<minpoz+1<<std::endl; }else{ std::cout<<"NIE"<<std::endl; } }else{ int mal=-1; for(int i=1;i<n;i++){ if(wys[i]<=wys[i-1]) mal=i; } if(mal==-1){ std::cout<<"NIE"<<std::endl; }else{ std::cout<<"TAK"<<std::endl; if(mal>=k-2) { for (int i = 1; i <= k - 3; i++) { std::cout << i << " "; } std::cout << mal << " " << mal+1 << std::endl; }else{ for (int i = 1; i <= k - 1; i++) { std::cout << i << " "; } std::cout<<std::endl; } } } }
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 | #include <iostream> #include <vector> int main(){ std::ios_base::sync_with_stdio(0); std::vector<int> wys; int n,k,v; std::cin>>n>>k; for(int i=0;i<n;i++){ std::cin>>v; wys.emplace_back(v); } if(k==2){ int minpref=wys[0]; int min=wys[0]; int result=0; for(int i=1;i<n;i++){ if(wys[i]<min) min=wys[i]; if(wys[i]>minpref){ minpref=min; result=i; } } if(result==n-1) std::cout<<"NIE"<<std::endl; else std::cout<<"TAK"<<std::endl<<result+1<<std::endl; }else if(k==3){ int max=0; int maxpoz=0; for(int i=0;i<n;i++) if(wys[i]>max){ max=wys[i]; maxpoz=i; } if(maxpoz!=n-1){ std::cout<<"TAK"<<std::endl<<maxpoz<<" "<<maxpoz+1<<std::endl; return 0; } int min=1000*1000*1000+1; int minpoz=0; for(int i=n-1;i>=0;i--) if(wys[i]<min){ min=wys[i]; minpoz=i; } if(minpoz!=0){ std::cout<<"TAK"<<std::endl<<minpoz<<" "<<minpoz+1<<std::endl; }else{ std::cout<<"NIE"<<std::endl; } }else{ int mal=-1; for(int i=1;i<n;i++){ if(wys[i]<=wys[i-1]) mal=i; } if(mal==-1){ std::cout<<"NIE"<<std::endl; }else{ std::cout<<"TAK"<<std::endl; if(mal>=k-2) { for (int i = 1; i <= k - 3; i++) { std::cout << i << " "; } std::cout << mal << " " << mal+1 << std::endl; }else{ for (int i = 1; i <= k - 1; i++) { std::cout << i << " "; } std::cout<<std::endl; } } } } |