제출 #1137582

#제출 시각아이디문제언어결과실행 시간메모리
1137582gygShortcut (IOI16_shortcut)C++20
31 / 100
1899 ms1044 KiB
#include "shortcut.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define arr array
#define vec vector
#define pii pair<int, int>
#define fir first 
#define sec second
const int N = 3e2 + 5, INF = 1e18;

int n, d;
arr<int, N> ext;
arr<vec<pii>, N> adj;

arr<arr<int, N>, N> dst;
void dfs(int u, int src, int pr = 0) {
    for (pii x : adj[u])
        if (x.fir != pr) dst[src][x.fir] = dst[src][u] + x.sec, dfs(x.fir, src, u);
}
void dst_cmp() {
    for (int u = 1; u <= n; u++)
        dfs(u, u);
}

int dmtr_cmp() {
    int ans = INF;
    for (int a = 1; a <= n; a++) {
        for (int b = a + 1; b <= n; b++) {
            int dmtr = 0;
            for (int u = 1; u <= n; u++) {
                dmtr = max(dmtr, ext[u]);
                for (int v = u + 1; v <= n; v++) {
                    int sp = min({ext[u] + dst[u][v] + ext[v], 
                                  ext[u] + dst[u][a] + d + dst[b][v] + ext[v],
                                  ext[u] + dst[u][b] + d + dst[a][v] + ext[v]});
                    dmtr = max(dmtr, sp);
                }
            }
            ans = min(ans, dmtr);
        }
    }
    return ans;
}

int find_shortcut(signed _n, vec<signed> _edg, vec<signed> _ext, signed _d) {
    n = _n, d = _d;
    for (int u = 1; u < n; u++) 
        adj[u].push_back({u + 1, _edg[u - 1]}), adj[u + 1].push_back({u, _edg[u - 1]});
    for (int u = 1; u <= n; u++) ext[u] = _ext[u - 1];

    dst_cmp();
    return dmtr_cmp();
}

컴파일 시 표준 에러 (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...