#include <iostream> #include <algorithm> using namespace std; int g[1000001]; int main() { ios_base::sync_with_stdio(false); int n; cin>>n; for (int i=0; i<n; ++i) { int a; cin>>a; g[a]=i; } long long wyn=1; int l=g[n], p=g[n], nast=n-1; for (int dl=2; dl<=n; ++dl) { if (dl%2==0) { l=min(l, g[nast]); p=max(p, g[nast]); --nast; } int d=p-l+1; if (dl<d) continue; int mil=max(0, p-dl+1); int mal=min(l, n-dl); wyn+=mal-mil+1; } cout<<(2*n+1)<<' '<<wyn<<endl; 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 | #include <iostream> #include <algorithm> using namespace std; int g[1000001]; int main() { ios_base::sync_with_stdio(false); int n; cin>>n; for (int i=0; i<n; ++i) { int a; cin>>a; g[a]=i; } long long wyn=1; int l=g[n], p=g[n], nast=n-1; for (int dl=2; dl<=n; ++dl) { if (dl%2==0) { l=min(l, g[nast]); p=max(p, g[nast]); --nast; } int d=p-l+1; if (dl<d) continue; int mil=max(0, p-dl+1); int mal=min(l, n-dl); wyn+=mal-mil+1; } cout<<(2*n+1)<<' '<<wyn<<endl; return 0; } |