답안 #923190

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
923190 2024-02-06T20:12:56 Z Macker 선물상자 (IOI15_boxes) C++14
10 / 100
1 ms 348 KB
#include "boxes.h"
#include <bits/stdc++.h>
 
using namespace std;
typedef long long ll;
#define all(v) v.begin(), v.end()

long long delivery(int N, int K, int L, int p[]) {
    ll n = N;
    ll k = K;
    ll l = L;
    vector<ll> v(p, p + N);
    ll dist = 0;
    ll s = 0, e = n;
    for (ll i = k - 1; i < n && v[i] <= l / 2; i += k) {
        dist += 2 * v[i];
        s = i + 1;
    }

    for (ll i = n - k; i >= 0 && v[i] > l / 2; i -= k) {
        dist += 2 * (l - v[i]);
        e = i;
    }

    ll a = 0;
    for (ll i = s; i < n && v[i] <= l / 2; i++) {
        a = 2 * v[i];
    }
    ll b = 0;
    for (ll i = e - 1; i >= 0 && v[i] > l / 2; i--) {
        b = 2 * (l - v[i]);
    }

    ll mxs, mxe, mx = -1;
    for (ll i = 0; i < n - k; i++) {
        if(i <= s && i + k >= e){
            if(p[i + k - 1] - p[i] > mx){
                mx = p[i + k - 1] - p[i];
                mxs = i;
                mxe = i + k - 1;
            }
        }
    }
    if(mx == -1) return dist + a + b;

    ll sub = l + (p[mxs] - p[s]) * 2 + (p[e] - p[mxe]) * 2;

    return min(dist + a + b, dist + sub);
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Incorrect 1 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Incorrect 1 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Incorrect 1 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -