#include <cstdio>
#include <cstdlib>
#include <cstring>
int main(void)
{
unsigned n, i, r = 0;
int x_prev, x;
int sign_prev, sign = 0;
int last_fixed = 0;
scanf("%u", &n);
for (i = 0; i < n; i++) {
int fix = 0;
scanf("%d", &x);
if (i) {
sign = x - x_prev;
if (!sign) {
if (!last_fixed)
fix++;
} else if (sign_prev && ((sign_prev < 0 && sign < 0) || (sign_prev > 0 && sign > 0))) {
fix++;
}
}
x_prev = x;
sign_prev = sign;
last_fixed = fix;
if (fix) {
r++;
}
}
printf("%u\n", r);
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 | #include <cstdio> #include <cstdlib> #include <cstring> int main(void) { unsigned n, i, r = 0; int x_prev, x; int sign_prev, sign = 0; int last_fixed = 0; scanf("%u", &n); for (i = 0; i < n; i++) { int fix = 0; scanf("%d", &x); if (i) { sign = x - x_prev; if (!sign) { if (!last_fixed) fix++; } else if (sign_prev && ((sign_prev < 0 && sign < 0) || (sign_prev > 0 && sign > 0))) { fix++; } } x_prev = x; sign_prev = sign; last_fixed = fix; if (fix) { r++; } } printf("%u\n", r); return 0; } |
English