#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; vector <int> v(n), d(n-1); for (int i = 0; i < n; i++) { cin >> v[i]; } for (int i = 0; i < n-1; i++) { if (v[i+1] - v[i] > 0) d[i] = 1; else if (v[i+1] - v[i] < 0) d[i] = -1; else d[i] = 0; } auto c = d; int wyn = 0; for (int i = 0; i < n-1; i++) { if (i % 2 && c[i] != -1) { c[i] = -1; if (i != n-2) c[i+1] = 1; wyn++; } else if (!(i % 2) && c[i] != 1) { c[i] = 1; if (i != n-2) c[i+1] = -1; wyn++; } } int res = wyn; wyn = 0; for (int i = 0; i < n-1; i++) { if (i % 2 && d[i] != 1) { d[i] = 1; if (i != n-2) d[i+1] = -1; wyn++; } else if (!(i % 2) && d[i] != -1) { d[i] = -1; if (i != n-2) d[i+1] = 1; wyn++; } } res = min(res, wyn); cout << res << "\n"; }
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 | #include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; vector <int> v(n), d(n-1); for (int i = 0; i < n; i++) { cin >> v[i]; } for (int i = 0; i < n-1; i++) { if (v[i+1] - v[i] > 0) d[i] = 1; else if (v[i+1] - v[i] < 0) d[i] = -1; else d[i] = 0; } auto c = d; int wyn = 0; for (int i = 0; i < n-1; i++) { if (i % 2 && c[i] != -1) { c[i] = -1; if (i != n-2) c[i+1] = 1; wyn++; } else if (!(i % 2) && c[i] != 1) { c[i] = 1; if (i != n-2) c[i+1] = -1; wyn++; } } int res = wyn; wyn = 0; for (int i = 0; i < n-1; i++) { if (i % 2 && d[i] != 1) { d[i] = 1; if (i != n-2) d[i+1] = -1; wyn++; } else if (!(i % 2) && d[i] != -1) { d[i] = -1; if (i != n-2) d[i+1] = 1; wyn++; } } res = min(res, wyn); cout << res << "\n"; } |