Submission #1362120

#TimeUsernameProblemLanguageResultExecution timeMemory
1362120hieuminh악어의 지하 도시 (IOI11_crocodile)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using ll = long long;
using namespace std;
#define forr(i, a, b) for (int i = a; i <= b; i++)
#define rfor(i, a, b) for (int i = a; i >= b; i--)
const int maxn = 1e5 + 5;

ll d1[maxn], d2[maxn];
struct s {
  int id;
  ll dist;
  bool operator<(const s &o) const {
    return dist > o.dist;
  }
};
vector<s> adj[maxn];
priority_queue<s> pq;
int travel_plan(int N, int M, int K, int R[][2], int L[], int P[]) {
  cin.tie(0)->sync_with_stdio(0);
  cin >> N >> M >> K;
  forr(i, 0, N - 1) {
    d1[i] = d2[i] = 1e18;
    adj[i].clear();
  }
  forr(i, 1, M) cin >> R[i][0] >> R[i][1];
  forr(i, 1, M) cin >> L[i];
  forr(i, 1, K) {
    int P;
    cin >> P;
    pq.push({P, 0});
    d1[P] = d2[P] = 0;
  }
  forr(i, 1, M) {
    int u = R[i][0], v = R[i][1], w = L[i];
    adj[u].push_back({v, w});
    adj[v].push_back({u, w});
  }
  while (!pq.empty()) {
    ll u = pq.top().id, dist = pq.top().dist;
    pq.pop();
    if (dist > d2[u])
      continue;
    for (auto &[v, w] : adj[u]) {
      if (d2[u] + w < d1[v]) {
        d2[v] = d1[v];
        d1[v] = d2[u] + v;
        pq.push({v, d2[v]});
      } else if (d2[u] + w < d2[v]) {
        d2[v] = d2[u] + w;
        pq.push({v, d2[v]});
      }
    }
  }
  cout << d2[0];
}

Compilation message (stderr)

crocodile.cpp: In function 'int travel_plan(int, int, int, int (*)[2], int*, int*)':
crocodile.cpp:55:1: warning: no return statement in function returning non-void [-Wreturn-type]
   55 | }
      | ^
/usr/bin/ld: /tmp/ccKUq8La.o: in function `main':
grader.cpp:(.text.startup+0x36): undefined reference to `travel_plan(int, int, int (*) [2], int*, int, int*)'
collect2: error: ld returned 1 exit status