제출 #1342805

#제출 시각아이디문제언어결과실행 시간메모리
1342805valerianText editor (CEOI24_editor)C++20
0 / 100
1 ms344 KiB
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define endl '\n'
#define Valerian void
#define Valerian_or_Habil ios::sync_with_stdio(false); cin.tie(0);
using namespace std;

Valerian solve(){
    ll n;
    cin >> n;
    ll sl, sc, el, ec;
    cin >> sl >> sc >> el >> ec;
    vector<ll> l(n + 1);
    for(int i = 1; i <= n; i++) cin >> l[i];

    if(sl == el){
        ll res = abs(sc - ec);
        if(n == 2){
            ll other = (sl == 1 ? 2 : 1);
            ll to_other = 1 + abs(min(sc, l[other] + 1) - min(ec, l[other] + 1));
            res = min(res, to_other + 1);
        }
        cout << res << endl;
    }
    else{
        ll res1 = 1 + abs(min(sc, l[el] + 1) - ec);
        
        ll res2;
        if(sl < el) res2 = (l[sl] + 1 - sc) + 1 + (ec - 1);
        else res2 = (sc - 1) + 1 + (l[el] + 1 - ec);
        
        ll res3 = 1 + abs(sc - min(ec, l[sl] + 1)) + 1;

        cout << min({res1, res2, res3}) << endl;
    }
}

int main(){
    Valerian_or_Habil;
    solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...