#include <bits/stdc++.h> using namespace std; int main(){ int n, wynik1g = 0, wynik1d = 0, wynik2g = 0, wynik2d = 0; // wynik1d to wynik dla nieparzystych, gdy dajemy w dół, itd cin >> n; int a[n]; for(int i = 0; i < n; i++) cin >> a[i]; if(n==1){ cout << 0 << endl; return 0; } if(n==2){ cout << (a[0] == a[1] ? 1 : 0) << endl; return 0; } for(int i = 1; i < n-1; i++){ if(i%2 == 1){ wynik1g += (int)(a[i-1] <= a[i] || a[i+1] <= a[i]); wynik1d += (int)(a[i-1] >= a[i] || a[i+1] >= a[i]); } else{ wynik2g += (int)(a[i-1] <= a[i] || a[i+1] <= a[i]); wynik2d += (int)(a[i-1] >= a[i] || a[i+1] >= a[i]); } } wynik2g += (int)(a[0] <= a[1]), wynik2d += (int)(a[0] >= a[1]); if(n%2 == 0){ wynik1g += (int)(a[n-1] <= a[n-2]); wynik1d += (int)(a[n-1] >= a[n-2]); } else{ wynik2g += (int)(a[n-1] <= a[n-2]); wynik2d += (int)(a[n-1] >= a[n-2]); } //cout << wynik1d << ' ' << wynik1g << ' ' << wynik2d << ' ' << wynik2g; cout << min(min(min(wynik1d,wynik1g),wynik2d),wynik2g) << endl; return 0; }
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 | #include <bits/stdc++.h> using namespace std; int main(){ int n, wynik1g = 0, wynik1d = 0, wynik2g = 0, wynik2d = 0; // wynik1d to wynik dla nieparzystych, gdy dajemy w dół, itd cin >> n; int a[n]; for(int i = 0; i < n; i++) cin >> a[i]; if(n==1){ cout << 0 << endl; return 0; } if(n==2){ cout << (a[0] == a[1] ? 1 : 0) << endl; return 0; } for(int i = 1; i < n-1; i++){ if(i%2 == 1){ wynik1g += (int)(a[i-1] <= a[i] || a[i+1] <= a[i]); wynik1d += (int)(a[i-1] >= a[i] || a[i+1] >= a[i]); } else{ wynik2g += (int)(a[i-1] <= a[i] || a[i+1] <= a[i]); wynik2d += (int)(a[i-1] >= a[i] || a[i+1] >= a[i]); } } wynik2g += (int)(a[0] <= a[1]), wynik2d += (int)(a[0] >= a[1]); if(n%2 == 0){ wynik1g += (int)(a[n-1] <= a[n-2]); wynik1d += (int)(a[n-1] >= a[n-2]); } else{ wynik2g += (int)(a[n-1] <= a[n-2]); wynik2d += (int)(a[n-1] >= a[n-2]); } //cout << wynik1d << ' ' << wynik1g << ' ' << wynik2d << ' ' << wynik2g; cout << min(min(min(wynik1d,wynik1g),wynik2d),wynik2g) << endl; return 0; } |