제출 #1185647

#제출 시각아이디문제언어결과실행 시간메모리
1185647vivkostov선물상자 (IOI15_boxes)C++20
0 / 100
0 ms396 KiB
//#pragma once
//#include "grader.cpp"
#include "boxes.h"
#include "bits/stdc++.h"
using namespace std;
long long int n,k,m,a[200005],l,r,used[200005];
long long int mi;
long long int go_from_left()
{
    int num=0;
    long long int otg=0;
    for(int i=1;i<=n;i++)
    {
        num++;
        if(num==k||i==n)
        {
            num=0;
            if(a[i]<=l)otg+=a[i]*2;
            else if(a[i-k+1]<=l)otg+=m;
            else otg+=(m-a[i])*2;
        }
    }
    return otg;
}
long long int go_from_right()
{
    int num=0;
    long long int otg=0;
    for(int i=n;i>=1;i--)
    {
        num++;
        if(num==k||i==1)
        {
            num=0;
            if(a[i]>=r)otg+=(m-a[i])*2;
            else if(a[i+k-1]>=r)otg+=m;
            else otg+=a[i]*2;
        }
    }
    return otg;
}
long long int delivery(int N, int K, int L, int p[])
{
    n=N;
    k=K;
    m=L;
    for(int i=0;i<n;i++)
    {
        a[i+1]=p[i];
    }
    l=(m-1)/2;
    r=(m+1)/2;
    mi=min(go_from_left(),go_from_right());
    cout<<mi<<endl;
    return mi;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...