제출 #139987

#제출 시각아이디문제언어결과실행 시간메모리
139987TAMREF선물상자 (IOI15_boxes)C++11
10 / 100
2 ms376 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

ll *ds, *de;

ll delivery(int N, int K, int L, int p[]) {
    int s = 0, e = N - 1, k = K;
    while(s <= e && p[s] == 0) ++s;
    ds = new ll[N+1];
    de = new ll[N+1];
    if(s > e) return 0;
    ll t = LLONG_MAX;
    int si = s;
    e = s;
    for(int i = N; i--;){
        de[i] = L - p[i];
        if(i + k < N) de[i] += de[i+k];
    }
    for(; s < N; s++){
        ds[s] = p[s];
        if(s >= k) ds[s] += ds[s-k];
        while(e+1 < N && ll(e-s+k-1)/k * L + 2ll * de[e+1] > ll(e-s+k)/k * L + 2ll * de[e+2]) ++e;
        t = min(t, 2ll * (ds[s] + de[e+1]) + ll(e-s+k-1)/k * L);
    }
    return t;
}

컴파일 시 표준 에러 (stderr) 메시지

boxes.cpp: In function 'll delivery(int, int, int, int*)':
boxes.cpp:15:9: warning: unused variable 'si' [-Wunused-variable]
     int si = s;
         ^~
#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...