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
#include<bits/stdc++.h>
using namespace std;

int n,pos[1000004];

long long wyn;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    
    cin>>n;
    for(int i = 1;i <= n; i++)
    {
        int x;
        cin>>x;
        pos[x] = i;
    }
    int m = n,l = pos[n],p = pos[n];
    for(int i = 1;i <= n; i++)
    {
        if(i % 2 == 0)
        {
            m--;
            l = min(l,pos[m]);
            p = max(p,pos[m]);
        }
        l = min(l,n - i + 1);
        p = max(p,1 + i - 1);
        if(p - l + 1 <= i)
        {
            int Lmin = max(1,p - i + 1);
            int Pmax = min(n,l + i - 1);
            wyn += min(l - Lmin,Pmax - p) + 1;
        }
    }
    cout<<2 * n + 1<<" "<<wyn<<'\n';
    return 0;
}