constint MAXN = 100005; int a[MAXN], f[MAXN << 1][2]; int(){ int n, b; scanf("%d%d", &n, &b); int bPos; for (int i = 0; i < n; i++){ int x; scanf("%d", &x); a[i] = x; if (x == b) bPos = i; } int d = 0; for (int i = bPos - 1; i >= 0; i--){ if (a[i] < b) d--; if (a[i] > b) d++; f[d + n][0]++; } d = 0; for (int i = bPos + 1; i < n; i++){ if (a[i] > b) d--; if (a[i] < b) d++; f[d + n][1]++; } int ans = 1; for (int i = 1; i <= 2 * n - 1; i++){ if (i == n) ans += f[i][0] + f[i][1]; ans += f[i][0] * f[i][1]; } printf("%dn", ans); return0; }
近期评论