#include <bits/stdc++.h> using namespace std; int main(){ // freopen("input.in", "r", stdin); // freopen("output.out", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int n; cin>>n; vector <int> pozycje (n+1,0); int a; for (int i=1; i<=n; i++){ cin>>a; pozycje[a]=i; } int wynik=1+(2*n); int k=1; long long kombinacje=1; int odl; int maks_odl=-1; for (int i=n-1; i>=((n+1)/2); i--){ odl=abs(pozycje[n]-pozycje[i]); maks_odl=max(maks_odl,odl); if (odl<=k and maks_odl<=k){ kombinacje++; } k++; } long long kom_l=0; long long kom_p=0; for (int i=n-k;i>0;i--){ if (pozycje[i]<pozycje[n]) kom_l++; else kom_p++; } kombinacje+=kom_l+kom_p+(kom_l*kom_p); cout<<wynik<<" "<<kombinacje; 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 42 43 44 45 46 47 | #include <bits/stdc++.h> using namespace std; int main(){ // freopen("input.in", "r", stdin); // freopen("output.out", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int n; cin>>n; vector <int> pozycje (n+1,0); int a; for (int i=1; i<=n; i++){ cin>>a; pozycje[a]=i; } int wynik=1+(2*n); int k=1; long long kombinacje=1; int odl; int maks_odl=-1; for (int i=n-1; i>=((n+1)/2); i--){ odl=abs(pozycje[n]-pozycje[i]); maks_odl=max(maks_odl,odl); if (odl<=k and maks_odl<=k){ kombinacje++; } k++; } long long kom_l=0; long long kom_p=0; for (int i=n-k;i>0;i--){ if (pozycje[i]<pozycje[n]) kom_l++; else kom_p++; } kombinacje+=kom_l+kom_p+(kom_l*kom_p); cout<<wynik<<" "<<kombinacje; return 0; } |