#include<bits/stdc++.h> using namespace std; int a1[50*1000+7]; int a2[50*1000+7]; bool czy_x_wr_y(int x, int y){ // czy x>=y if(x==y) return 1; if(x>=0 && y<=0) return 1; if(x>0 && y>0 && x>y) return 1; if(x<0 && y<0 && abs(x)<abs(y) ) return 1; return 0; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, x=1000*1000*100; cin >> n; for(int i=0; i<n; ++i){ cin >> a1[i]; a2[i] = a1[i]; } int wynik1=0, wynik2=0; for(int i=1; i<n; ++i){ // /\/\/\... nieparz > parz if(i%2==1 && czy_x_wr_y(a1[i-1], a1[i]) ){ ++wynik1; a1[i] = x; } if(i%2==0 && czy_x_wr_y(a1[i], a1[i-1]) ){ ++wynik1; a1[i] = -x; } } for(int i=1; i<n; ++i){ // \/\/\/... parz > nieparz if(i%2==1 && czy_x_wr_y(a2[i], a2[i-1]) ){ ++wynik2; a2[i] = -x; } if(i%2==0 && czy_x_wr_y(a2[i-1], a2[i]) ){ ++wynik2; a2[i] = x; } } cout << min(wynik1, wynik2); 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 41 42 43 44 45 46 47 | #include<bits/stdc++.h> using namespace std; int a1[50*1000+7]; int a2[50*1000+7]; bool czy_x_wr_y(int x, int y){ // czy x>=y if(x==y) return 1; if(x>=0 && y<=0) return 1; if(x>0 && y>0 && x>y) return 1; if(x<0 && y<0 && abs(x)<abs(y) ) return 1; return 0; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, x=1000*1000*100; cin >> n; for(int i=0; i<n; ++i){ cin >> a1[i]; a2[i] = a1[i]; } int wynik1=0, wynik2=0; for(int i=1; i<n; ++i){ // /\/\/\... nieparz > parz if(i%2==1 && czy_x_wr_y(a1[i-1], a1[i]) ){ ++wynik1; a1[i] = x; } if(i%2==0 && czy_x_wr_y(a1[i], a1[i-1]) ){ ++wynik1; a1[i] = -x; } } for(int i=1; i<n; ++i){ // \/\/\/... parz > nieparz if(i%2==1 && czy_x_wr_y(a2[i], a2[i-1]) ){ ++wynik2; a2[i] = -x; } if(i%2==0 && czy_x_wr_y(a2[i-1], a2[i]) ){ ++wynik2; a2[i] = x; } } cout << min(wynik1, wynik2); return 0; } |