239312026-02-01 12:20:07miszorimarciKörJáték (50 pont)cpp17Elfogadva 50/508ms1348 KiB
#include <bits/stdc++.h>

using namespace std;

long long get_dist(int i, int j, int n) {
    return (j - i + n) % n;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n;cin >> n;

    vector<int> p(n);
    vector<int> pos(n + 1);  

    for (int i = 0; i < n; ++i) {
        cin >> p[i];
        pos[p[i]] = i;
    }

    vector<long long> D(n); 
    long long total_S = 0;
    for (int i = 1; i < n; ++i) {
        D[i] = get_dist(pos[i], pos[i+1], n);
        total_S += D[i];
    }

    for (int i = 0; i < n; ++i) {
        int K = p[i]; 
        long long res = 0;

        if (K == 1) {
            res = total_S - D[1] + get_dist(pos[n], pos[1], n);
        } else if (K == n) {
            res = total_S;
        } else {
            res = total_S - D[K-1] - D[K] 
                     + get_dist(pos[K-1], pos[K+1], n) 
                     + get_dist(pos[n], pos[K], n);
        }

        cout << res << (i == n - 1 ? "" : " ");
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/01ms508 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/21ms380 KiB
10Elfogadva2/21ms316 KiB
11Elfogadva2/21ms316 KiB
12Elfogadva2/21ms388 KiB
13Elfogadva2/21ms316 KiB
14Elfogadva2/21ms508 KiB
15Elfogadva2/21ms508 KiB
16Elfogadva1/11ms316 KiB
17Elfogadva2/28ms1196 KiB
18Elfogadva2/28ms1332 KiB
19Elfogadva2/27ms920 KiB
20Elfogadva2/28ms1168 KiB
21Elfogadva2/27ms1076 KiB
22Elfogadva2/28ms1184 KiB
23Elfogadva2/28ms1084 KiB
24Elfogadva2/28ms984 KiB
25Elfogadva2/28ms1332 KiB
26Elfogadva2/28ms1324 KiB
27Elfogadva2/28ms1348 KiB
28Elfogadva2/28ms1324 KiB
29Elfogadva1/18ms1076 KiB