245072026-02-12 09:57:29Pedri26KörJáték (50 pont)cpp17Accepted 50/508ms1080 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
int n, poz[30002], a[30002], tav[30002];

int main() {
	
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        poz[a[i]]=i;
    }
    int s=0;
    for(int i=1;i<n;i++)
    {
        if(poz[i]>poz[i+1])
        {
            s+=n+poz[i+1]-poz[i];
            tav[i]=n+poz[i+1]-poz[i];
        }
        else 
        {
            s+=poz[i+1]-poz[i];
            tav[i]=poz[i+1]-poz[i];
        }
    }
    for(int i=1;i<=n;i++)
    {
        int s1=s;
        s1-=tav[a[i]];
        if(a[i]!=1)s1-=tav[a[i]-1];
        poz[n+1]=poz[n];
        if(a[i]!=1){
            if(poz[a[i]+1]>=poz[a[i]-1])
            {
                s1+=poz[a[i]+1]-poz[a[i]-1];
                //cout<<poz[a[i]+1]<<" "<<poz[a[i]-1]<<endl;
            }
            else
            {
                s1+=n+poz[a[i]+1]-poz[a[i]-1];
            }
        }
        if(poz[a[i]]>=poz[n])
        {
            s1+=poz[a[i]]-poz[n];
        }
        else 
        {
            s1+=n+poz[a[i]]-poz[n];
        }
        cout<<s1<<" ";
    }
    

    
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms508 KiB
2Accepted0/01ms316 KiB
3Accepted0/01ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms316 KiB
10Accepted2/21ms316 KiB
11Accepted2/21ms508 KiB
12Accepted2/21ms316 KiB
13Accepted2/21ms316 KiB
14Accepted2/21ms316 KiB
15Accepted2/21ms316 KiB
16Accepted1/11ms316 KiB
17Accepted2/28ms1076 KiB
18Accepted2/28ms1080 KiB
19Accepted2/26ms820 KiB
20Accepted2/27ms1076 KiB
21Accepted2/27ms820 KiB
22Accepted2/27ms1080 KiB
23Accepted2/27ms820 KiB
24Accepted2/27ms1076 KiB
25Accepted2/28ms1076 KiB
26Accepted2/28ms1076 KiB
27Accepted2/28ms1076 KiB
28Accepted2/28ms1076 KiB
29Accepted1/17ms972 KiB