#include <iostream>
#include <vector>
#include <climits>
using namespace std;
int part_result(int const ver, vector<int> const & vec, int const n) {
int result = 0;
int last = vec[0];
for(int i = 1; i < n; i++) {
if(i%2 == ver) {
if(last >= vec[i]) {
result++;
last = INT_MAX;
} else {
last = vec[i];
}
} else if (i%2 == 1-ver) {
if(last <= vec[i]) {
result++;
last = INT_MIN;
} else {
last = vec[i];
}
}
}
return result;
}
void solve() {
int n;
cin >> n;
vector<int> vec(n);
for(int i = 0; i < n; i++) {
cin >> vec[i];
}
int result0 = part_result(0, vec, n);
int result1 = part_result(1, vec, n);
cout << ((result0 < result1) ? result0 : result1) << "\n";
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
solve();
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 48 49 50 51 52 53 | #include <iostream> #include <vector> #include <climits> using namespace std; int part_result(int const ver, vector<int> const & vec, int const n) { int result = 0; int last = vec[0]; for(int i = 1; i < n; i++) { if(i%2 == ver) { if(last >= vec[i]) { result++; last = INT_MAX; } else { last = vec[i]; } } else if (i%2 == 1-ver) { if(last <= vec[i]) { result++; last = INT_MIN; } else { last = vec[i]; } } } return result; } void solve() { int n; cin >> n; vector<int> vec(n); for(int i = 0; i < n; i++) { cin >> vec[i]; } int result0 = part_result(0, vec, n); int result1 = part_result(1, vec, n); cout << ((result0 < result1) ? result0 : result1) << "\n"; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); solve(); return 0; } |
English