제출 #1309360

#제출 시각아이디문제언어결과실행 시간메모리
1309360azamurai사이버랜드 (APIO23_cyberland)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>

#define int long long
#define ll long long
#define mp make_pair 
#define fi first 
#define se second 
#define Sz(x) (int)x.size()

using namespace std;

const int N = 1e5 + 5;
const int K = 35;
const double INF = 1e18;
int n, m, k, s, a[N], comp[N], sz;
double dp[K][N];
vector <pair<int,double>> g[N];

void dfs(int v, int Comp) {
    comp[v] = Comp;
    for (auto to : g[v]) {
        if (!comp[to.fi]) {
            dfs(to.fi, Comp);
        }
    }
}

void solve() {
    cin >> n >> m >> k >> s;
    s++;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    while (m--) {
        int u, v;
        double w;
        cin >> u >> v >> w;
        u++; v++;
        g[u].push_back(mp(v, w));
        g[v].push_back(mp(u, w));
    }
    comp[s] = INT_MAX;
    for (auto to : g[s]) {
        if (!comp[to.fi]) {
            dfs(to.fi, ++sz);
        }
    }
    vector <int> have;
    for (int i = 1; i <= n; i++) {
        if (comp[i] == comp[1]) have.push_back(i);
    }
    for (int i = 0; i < K; i++) {
        for (int j = 1; j <= n; j++) {
            dp[i][j] = INF;
        }
    }
    priority_queue <pair<double, pair<int,int>>> st;
    st.push(mp(0, mp(s, 0)));
    while (Sz(st) > 0) {
        pair<double,pair<int,int>> p = st.top();
        st.pop();
        int v = p.se.fi, kk = p.se.se;
        double t = -p.fi;
        if (dp[kk][v] != t) continue;
        for (auto [u, w] : g[v]) {
            if (dp[kk][u] > (dp[kk][v] + w)) {
                dp[kk][u] = dp[kk][v] + w;
                st.push(mp(dp[kk][u], mp(u, kk)));
            }
            if (kk < k && dp[kk + 1][u] > ((dp[kk][v] + w) * 0.5)) {
                dp[kk + 1][u] = (dp[kk][v] + w) * 0.5;
                st.push(mp(dp[kk + 1][u], mp(u, kk + 1)));
            }
        }
    }
    cout << dp[k][s];
}

signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    solve();
}

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

/usr/bin/ld: /tmp/ccdTSfaW.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccWAsNJH.o:cyberland.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccdTSfaW.o: in function `main':
grader.cpp:(.text.startup+0x700): undefined reference to `solve(int, int, int, int, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status