Submission #919480

#TimeUsernameProblemLanguageResultExecution timeMemory
919480dostsCyberland (APIO23_cyberland)C++17
Compilation error
0 ms0 KiB
#pragma GCC optimize("O3,unroll-loops") #include "cyberland.h" #include <bits/stdc++.h> using namespace std; vector<pair<int,int>> edges[100000]; double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) { K = min(K,70); for (int i=0;i<N;i++) edges[i].clear(); for (int i=0;i<M;i++) { edges[x[i]].push_back({y[i],c[i]}); edges[y[i]].push_back({x[i],c[i]}); } double dp[N][K+1]; for (int i=0;i<N;i++) { for (int j=0;j<=K;j++) dp[i][j] = 2e18; } using wtf = pair<double,pair<int,int>>; priority_queue<wtf,vector<wtf>,greater<wtf>> pq; pq.push({0,{0,0}}); while (!pq.empty()) { wtf f = pq.top(); pq.pop(); double cost = f.first; int used = f.second.second; int city = f.second.first; if (dp[city][used] <= cost) continue; dp[city][used] = cost; if (city != H) { for (auto it : edges[city]) { int dest = it.first; int go = it.second; if (!arr[dest]) { if (dp[dest][used]>0) pq.push({0,{dest,used}}); } else if (arr[dest]==1) { if (dp[dest][used]>cost+go) pq.push({cost+go,{dest,used}}); } else { if (dp[dest][used+1] > (cost+go)/2 && used!=k) pq.push({(cost+go)/2,{dest,used+1}}); if (dp[dest][used] > cost+go)pq.push({cost+go,{dest,used}}); } } } } double ans = 2e18; for (int i=0;i<=K;i++) ans = min(ans,dp[H][i]); return ans==2e18?-1:ans; }

Compilation message (stderr)

cyberland.cpp: In function 'double solve(int, int, int, int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
cyberland.cpp:41:65: error: 'k' was not declared in this scope
   41 |                     if (dp[dest][used+1] > (cost+go)/2 && used!=k) pq.push({(cost+go)/2,{dest,used+1}});
      |                                                                 ^