148692025-02-05 12:56:50DhaneHaneKörJáték (50 pont)cpp17Accepted 50/5014ms1364 KiB
#include <iostream>
#include <vector>
using namespace std;
int tav(int a, int b, int n) {
    if (b - a > 0)return b - a;
    else return b - a + n;
}
int main()
{
    int n, x; //ifstream f("szamok.txt"); f>>n;
    cin >> n;
    vector<int>ind(n + 1), ert(n + 1), sor(n + 1), v1; sor[0] = 0;
    for (int i = 1; i <= n; i++) { cin >> x; ind[x] = i; ert[i] = x; }
    int s = 0, k;
    for (int i = 1; i < n; i++) {
        s += tav(ind[i], ind[i + 1], n);
    }
    for (int i = 1; i <= n; i++) {
        k = s; int p = ert[i];
        if (p != n && p != 1) {
            k = k + tav(ind[n], ind[p], n) +
                tav(ind[p - 1], ind[p + 1], n)
                - tav(ind[p], ind[p + 1], n) -
                tav(ind[p - 1], ind[p], n);
        }
        else if (ert[i] == 1) {
            k = k + tav(ind[n], ind[1], n) - tav(ind[1], ind[2], n);
        }
        cout << k << " ";
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms508 KiB
2Accepted0/01ms316 KiB
3Accepted0/01ms316 KiB
4Accepted2/21ms500 KiB
5Accepted2/21ms500 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms316 KiB
10Accepted2/21ms544 KiB
11Accepted2/21ms316 KiB
12Accepted2/21ms316 KiB
13Accepted2/21ms316 KiB
14Accepted2/21ms316 KiB
15Accepted2/21ms316 KiB
16Accepted1/11ms316 KiB
17Accepted2/214ms1180 KiB
18Accepted2/214ms1176 KiB
19Accepted2/214ms1076 KiB
20Accepted2/214ms1176 KiB
21Accepted2/214ms1076 KiB
22Accepted2/214ms1104 KiB
23Accepted2/214ms1176 KiB
24Accepted2/214ms1180 KiB
25Accepted2/214ms1172 KiB
26Accepted2/214ms1092 KiB
27Accepted2/214ms1216 KiB
28Accepted2/214ms1172 KiB
29Accepted1/114ms1364 KiB