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<iostream>
#include<vector>
using namespace std;
int n;
int wynik=0;
void fun(int l, int p, double ocz, vector<int>we){
    if(ocz>n){return;}
    int kl=l;
    int kp=p;
    while(we[kl]<ocz){
        kl++;
    }
    while(we[kp]<ocz){
        kp--;
    }
    int rozp=p-kp;
    int rozl=kl-l;
    /*if(rozp==0 && rozp == 0){
        /*if(kl!=kp){
            wynik++;
        }*/
        /*return ;
    }*/
    wynik+=rozp;
    wynik+=rozl;
    wynik+=(rozp*rozl);
    //cout << "l:"<<l<<" p:" << p << " kl:"<<kl<<" kp:"<<kp<<" wyn:"<<wynik<<" ocz:"<<ocz<<endl;
    return fun(kl,kp,ocz+1,we);
}
int main(){
    cin >> n;
    int o=(n+1)/2;
    double ocz=o;
    vector<int>we(n);
    for (int i=0;i<n;i++){
        cin >> we[i];
    }
    fun(0,n-1,ocz,we);
    cout << (2*n)+1<<" "<<wynik << endl;
}