Submission #755957

#TimeUsernameProblemLanguageResultExecution timeMemory
755957HaciyevAlik사이버랜드 (APIO23_cyberland)C++17
0 / 100
213 ms8064 KiB
#include "cyberland.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define ff first #define ss second const int mx=1e5+5; int n,m,h,k,used[mx]; vector<pair<int,int>> g[mx]; void dfs(int u) { used[u]=1; for(int i=0;i<int(g[u].size());++i) { int v=g[u][i].ff; if(!used[v]&&v!=h) dfs(v); } } double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) { n=N,m=M,h=H,k=K; for(int i=0;i<n;++i) g[i].clear(); memset(used,0,sizeof(used)); for(int i=0;i<m;++i) { g[x[i]].pb({y[i],c[i]}); g[y[i]].pb({x[i],c[i]}); } set<int> s; dfs(0); for(int i=0;i<n;++i) { if(used[i]&&!arr[i]) s.insert(i); } memset(used,0,sizeof(used)); priority_queue<pair<int,int>> pq; for(auto i:s) { pq.push({0,i}); } int dis[mx]; for(int i=0;i<n;++i) dis[i]=1e10; pq.push({0,0}); dis[0]=0; while(!pq.empty()) { int u=pq.top().ss; pq.pop(); if(used[u]) continue; used[u]=1; for(int i=0;i<int(g[u].size());++i) { int v=g[u][i].ff,w=g[u][i].ss; if(dis[u]+w<dis[v]) { dis[v]=dis[u]+w; pq.push({-dis[v],v}); } } } if(!used[h]) { return -1; } else { return dis[h]; } }

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:36:33: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+10' to '2147483647' [-Woverflow]
   36 |     for(int i=0;i<n;++i) dis[i]=1e10;
      |                                 ^~~~
#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...