#include <bits/stdc++.h> using namespace std; int main() { int n; scanf("%d", &n); vector<int> p; p.resize(n); for (int i = 0; i < n; ++i) { int x; scanf("%d", &x); p[x - 1] = i; } int64_t total = 0; int lo = n, hi = 0; for (int s = 1; s <= n; ++s) { int m = 1 + s / 2; int a = p[n - m]; lo = min(a, lo); hi = max(a, hi); int l = max(0, hi - s + 1); int r = min(n - s, lo); total += max(0, r - l + 1); } printf("%d %ld\n", 2 * n + 1, total); 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 | #include <bits/stdc++.h> using namespace std; int main() { int n; scanf("%d", &n); vector<int> p; p.resize(n); for (int i = 0; i < n; ++i) { int x; scanf("%d", &x); p[x - 1] = i; } int64_t total = 0; int lo = n, hi = 0; for (int s = 1; s <= n; ++s) { int m = 1 + s / 2; int a = p[n - m]; lo = min(a, lo); hi = max(a, hi); int l = max(0, hi - s + 1); int r = min(n - s, lo); total += max(0, r - l + 1); } printf("%d %ld\n", 2 * n + 1, total); return 0; } |