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