129602025-01-03 23:29:27BucsMateKörJáték (50 pont)cpp17Accepted 50/5014ms1080 KiB
#include <iostream>

using namespace std;

int main()
{
    int N;
    int szekek[30002], poz[30002];
    cin >> N;
    for(int i = 1; i <= N; i++){
        cin >> szekek[i];
        poz[szekek[i]] = i;
    }

    int tavolsag[30002], osszeg = 0;
    for(int i = 1; i < N; i++){
        tavolsag[i] = poz[i+1] - poz[i];
        if(poz[i] > poz[i+1]){
            tavolsag[i] += N;
        }
        osszeg += tavolsag[i];
    }

    int megoldas;
    for(int i = 1; i <= N; i++){
        int szek = szekek[i];
        int tavolsag_utolso = poz[szek] - poz[N];
        if(poz[N] > poz[szek]){
            tavolsag_utolso += N;
        }
        int tavolsag_elozo = poz[szek+1] - poz[szek-1];
        if(poz[szek-1] > poz[szek+1]){
            tavolsag_elozo += N;
        }
        if(szek == 1){
            tavolsag_elozo = 0;
        }
        megoldas = osszeg + tavolsag_utolso - tavolsag[szek] - tavolsag[szek-1] + tavolsag_elozo;
        if(szek == N){
            megoldas = osszeg;
        }
        cout << megoldas << " ";
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms320 KiB
2Accepted0/01ms320 KiB
3Accepted0/01ms500 KiB
4Accepted2/21ms320 KiB
5Accepted2/21ms380 KiB
6Accepted2/21ms320 KiB
7Accepted2/21ms320 KiB
8Accepted2/21ms320 KiB
9Accepted2/21ms512 KiB
10Accepted2/21ms320 KiB
11Accepted2/21ms320 KiB
12Accepted2/21ms512 KiB
13Accepted2/21ms320 KiB
14Accepted2/21ms320 KiB
15Accepted2/21ms320 KiB
16Accepted1/11ms320 KiB
17Accepted2/214ms1068 KiB
18Accepted2/214ms1024 KiB
19Accepted2/214ms1048 KiB
20Accepted2/214ms1080 KiB
21Accepted2/214ms1080 KiB
22Accepted2/214ms1080 KiB
23Accepted2/214ms1080 KiB
24Accepted2/214ms1080 KiB
25Accepted2/214ms1080 KiB
26Accepted2/214ms1080 KiB
27Accepted2/214ms1080 KiB
28Accepted2/214ms1036 KiB
29Accepted1/114ms1080 KiB