129602025-01-03 23:29:27BucsMateKörJáték (50 pont)cpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms320 KiB
2Elfogadva0/01ms320 KiB
3Elfogadva0/01ms500 KiB
4Elfogadva2/21ms320 KiB
5Elfogadva2/21ms380 KiB
6Elfogadva2/21ms320 KiB
7Elfogadva2/21ms320 KiB
8Elfogadva2/21ms320 KiB
9Elfogadva2/21ms512 KiB
10Elfogadva2/21ms320 KiB
11Elfogadva2/21ms320 KiB
12Elfogadva2/21ms512 KiB
13Elfogadva2/21ms320 KiB
14Elfogadva2/21ms320 KiB
15Elfogadva2/21ms320 KiB
16Elfogadva1/11ms320 KiB
17Elfogadva2/214ms1068 KiB
18Elfogadva2/214ms1024 KiB
19Elfogadva2/214ms1048 KiB
20Elfogadva2/214ms1080 KiB
21Elfogadva2/214ms1080 KiB
22Elfogadva2/214ms1080 KiB
23Elfogadva2/214ms1080 KiB
24Elfogadva2/214ms1080 KiB
25Elfogadva2/214ms1080 KiB
26Elfogadva2/214ms1080 KiB
27Elfogadva2/214ms1080 KiB
28Elfogadva2/214ms1036 KiB
29Elfogadva1/114ms1080 KiB