제출 #1195052

#제출 시각아이디문제언어결과실행 시간메모리
1195052n3rm1n선물상자 (IOI15_boxes)C++20
25 / 100
0 ms328 KiB
#include "boxes.h"
#include "bits/stdc++.h"
using namespace std;
const int maxn = 1e6 + 10;
long long n, k, l;
long long pref[maxn], suff[maxn];
long long delivery(int N, int K, int L, int p[])
{
    n = N;
    k = K;
    l = L;
    long long ans = n * l;
    if(n < k)
    {
        ans = min(ans, l);
    }
    for (int i = 0; i < n; ++ i)
    {
        pref[i] = p[i] * 2;
        if(i - k >= 0)
            pref[i] += pref[i - k];
    }
    for (int i = n-1; i >= 0; -- i)
    {
        suff[i] = (l - p[i]) * 2;
        if(i + k < n)
        {
            suff[i] += suff[i + k];
        }
    }
   ans = min(ans, min(pref[n-1], suff[0]));
    for (int i = 0; i < n; ++ i)
    {
        ans = min(ans, pref[i] + suff[i+1]);
    }
    if(n < k)return ans;

    for (int i = 0; i < n; ++ i)
    {
        ans = min(ans, l + pref[i] + suff[i + k + 1]);
    }
    return ans;
}
#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...