#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; } |
English