Submission #876761

#TimeUsernameProblemLanguageResultExecution timeMemory
876761deadeye0Crocodile's Underground City (IOI11_crocodile)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define fi first #define si second #define ar array #define pb push_back typedef pair<ll,ll> pi; typedef tuple<int,int,int> ti; typedef vector<int> vi; template<typename T> bool chmin(T &a, T b){return (b < a) ? a = b, 1 : 0;} template<typename T> bool chmax(T &a, T b){return (b > a) ? a = b, 1 : 0;} void debug_out() {cerr<<endl;} template <typename Head, typename... Tail> void debug_out(Head _H, Tail... _T) {cerr<<" "<<to_string(_H);debug_out(_T...);} #define debug(...) cerr<<"["<<#__VA_ARGS__<<"]:",debug_out(__VA_ARGS__) const int MAXN = 100010; const ll INF = 2e9; int n, m; int vis[n]; ll d1[MAXN], d2[MAXN]; vector<vector<pi>> g; priority_queue<pi, vector<pi>, greater<pi>> pq; int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { n = N, m = M; g.resize(n); for (int i = 0; i < n; ++i) { d1[i] = d2[i] = INF; } for (int i = 0; i < m; ++i) { int u = R[i][0], v = R[i][1]; g[u].pb({v, L[i]}); g[v].pb({u, L[i]}); } for (int i = 0; i < K; ++i) { d1[P[i]] = 0; d2[P[i]] = 0; pq.push({0, P[i]}); } while (pq.size()) { auto [d, x] = pq.top(); pq.pop(); if (vis[x]) continue; vis[x] = 1; for (auto i: g[x]) { ll val = d + i.si; if (val < d2[i.fi]) { d2[i.fi] = val; if (d2[i.fi] < d1[i.fi]) swap(d2[i.fi], d1[i.fi]); if (d2[i.fi] < INF) pq.push({d2[i.fi], i.fi}); } } } return d2[0]; }

Compilation message (stderr)

crocodile.cpp:20:10: error: array bound is not an integer constant before ']' token
   20 | int vis[n];
      |          ^
crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:44:13: error: 'vis' was not declared in this scope; did you mean 'vi'?
   44 |         if (vis[x]) continue;
      |             ^~~
      |             vi
crocodile.cpp:45:9: error: 'vis' was not declared in this scope; did you mean 'vi'?
   45 |         vis[x] = 1;
      |         ^~~
      |         vi