#include <iostream> #include <vector> using namespace std; vector<int> tab; vector<int> tab2; int wen(int a) { if(tab[a]>tab[a-1]) return 0; else tab[a]=100000000; return 1; } int wen2(int a) { if(tab2[a]>tab2[a-1]) return 0; else tab2[a]=100000000; return 1; } int mej(int a) { if(tab[a]<tab[a-1]) return 0; else tab[a]=-100000000; return 1; } int mej2(int a) { if(tab2[a]<tab2[a-1]) return 0; else tab2[a]=-100000000; return 1; } int main() { int n, par, odp=0, odp2=0, p; cin>>n; for(int a=0; a<n; a++) { cin>>p; tab.push_back(p); tab2.push_back(p); } for(int a=1; a<n; a++) { if(a%2==0) odp+=mej(a); else odp+=wen(a); } for(int a=1; a<n; a++) { if(a%2==1) odp2+=mej2(a); else odp2+=wen2(a); } cout<<min(odp, odp2); }
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 | #include <iostream> #include <vector> using namespace std; vector<int> tab; vector<int> tab2; int wen(int a) { if(tab[a]>tab[a-1]) return 0; else tab[a]=100000000; return 1; } int wen2(int a) { if(tab2[a]>tab2[a-1]) return 0; else tab2[a]=100000000; return 1; } int mej(int a) { if(tab[a]<tab[a-1]) return 0; else tab[a]=-100000000; return 1; } int mej2(int a) { if(tab2[a]<tab2[a-1]) return 0; else tab2[a]=-100000000; return 1; } int main() { int n, par, odp=0, odp2=0, p; cin>>n; for(int a=0; a<n; a++) { cin>>p; tab.push_back(p); tab2.push_back(p); } for(int a=1; a<n; a++) { if(a%2==0) odp+=mej(a); else odp+=wen(a); } for(int a=1; a<n; a++) { if(a%2==1) odp2+=mej2(a); else odp2+=wen2(a); } cout<<min(odp, odp2); } |