제출 #1324862

#제출 시각아이디문제언어결과실행 시간메모리
1324862xyz7577Shortcut (IOI16_shortcut)C++17
0 / 100
0 ms332 KiB
#include <bits/stdc++.h>
using namespace std;
using int64=long long;
int64 find_shortcut(int n, vector<int> l, vector<int> d, int c) {
    if (n<=1) return 0;
    vector<int64> pos(n);
    for (int i=1; i<n;++i) pos[i]=pos[i-1]+l[i-1];
    vector<int64> d_plus_pos(n), d_minus_pos(n);
    for (int i=0;i<n;++i) {
        d_plus_pos[i]=(int64)d[i]+pos[i];
        d_minus_pos[i]=(int64)d[i]-pos[i];
    }
    vector<int64> max_d_plus_excl(n, LLONG_MIN), max_d_minus_excl(n, LLONG_MIN);
    for (int x=0;x<n;++x) {
        int64 mp=LLONG_MIN,mm=LLONG_MIN;
        for (int y=0; y<n;++y) {
            if (y==x) continue;
            mp=max(mp,d_plus_pos[y]);
            mm=max(mm,d_minus_pos[y]);
        }
        if (mp==LLONG_MIN) mp=LLONG_MIN/4;
        if (mm==LLONG_MIN) mm=LLONG_MIN/4;
        max_d_plus_excl[x]=mp;
        max_d_minus_excl[x]=mm;
    }
    int64 ans=LLONG_MAX;
    for (int i=0;i<n;++i) {
        for (int j=i+1;j<n;++j) {
            int64 diam=0;
            for (int x=0; x<n;++x) {
                int64 max_normal=max(max_d_plus_excl[x]-pos[x]+d[x],max_d_minus_excl[x]+pos[x]+d[x]);
                int64 max_via1=max(max_d_plus_excl[x]-pos[j]+d[x]+c,max_d_minus_excl[x]+pos[j]+d[x]+c);
                int64 max_via2=max(max_d_plus_excl[x]-pos[i]+d[x]+c,max_d_minus_excl[x]+pos[i]+d[x]+c);
                int64 best=min({ max_normal,max_via1, max_via2});
                diam=max(diam,best);
            }
            ans=min(ans, diam);
        }
    }

    return ans;
}

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

shortcut.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
shortcut_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...