#include<bits/stdc++.h> using namespace std; int tab[50010]; bool zmienione1[50010]; bool zmienione2[50010]; int main() { int n, i, wynik1=0, wynik2=0; scanf("%d", &n); for(i=1;i<=n;i++) scanf("%d", &tab[i]); for(i=2;i<=n;i++){ if(zmienione1[i-1]) continue; if(i%2==0 && tab[i-1]>=tab[i]){ zmienione1[i] = 1; wynik1++; } if(i%2==1 && tab[i-1]<=tab[i]){ zmienione1[i] = 1; wynik1++; } } for(i=2;i<=n;i++){ if(zmienione2[i-1]) continue; if(i%2==1 && tab[i-1]>=tab[i]){ zmienione2[i] = 1; wynik2++; } if(i%2==0 && tab[i-1]<=tab[i]){ zmienione2[i] = 1; wynik2++; } } printf("%d\n", min(wynik1, wynik2)); }
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 | #include<bits/stdc++.h> using namespace std; int tab[50010]; bool zmienione1[50010]; bool zmienione2[50010]; int main() { int n, i, wynik1=0, wynik2=0; scanf("%d", &n); for(i=1;i<=n;i++) scanf("%d", &tab[i]); for(i=2;i<=n;i++){ if(zmienione1[i-1]) continue; if(i%2==0 && tab[i-1]>=tab[i]){ zmienione1[i] = 1; wynik1++; } if(i%2==1 && tab[i-1]<=tab[i]){ zmienione1[i] = 1; wynik1++; } } for(i=2;i<=n;i++){ if(zmienione2[i-1]) continue; if(i%2==1 && tab[i-1]>=tab[i]){ zmienione2[i] = 1; wynik2++; } if(i%2==0 && tab[i-1]<=tab[i]){ zmienione2[i] = 1; wynik2++; } } printf("%d\n", min(wynik1, wynik2)); } |