Submission #984814

#TimeUsernameProblemLanguageResultExecution timeMemory
984814Muhammad_AneeqCyberland (APIO23_cyberland)C++17
37 / 100
32 ms9092 KiB
#include "cyberland.h" #include <vector> #include <map> #include <set> #include <iostream> using namespace std; int const MAXN=1e5+10; double const inf=1e18+10; vector<pair<int,int>>nei[MAXN]; int val[MAXN]; double dis[MAXN]={}; bool vis[MAXN]={},ra[MAXN]={}; int h; double ans=inf; map<pair<int,int>,int>d; void dfs(int x) { ra[x]=1; vis[x]=1; for (auto [i,j]:nei[x]) { if (!vis[i]) dfs(i); } } vector<int>p; int k; void bfs(int x) { set<pair<int,int>>S; dis[x]=0; S.insert({dis[x],x}); while (S.size()) { int z=(*begin(S)).second; S.erase(*begin(S)); if (vis[z]) continue; vis[z]=1; for (auto [i,j]:nei[z]) { if (dis[i]>dis[z]+j) { dis[i]=dis[z]+j; S.insert({dis[i],i}); } } } } double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) { ans=inf; h=H; k=K; d={}; p={}; bool tw=0; for (int i=0;i<N;i++) { nei[i]={}; val[i]=arr[i]; vis[i]=0; dis[i]=inf; ra[i]=0; if (val[i]==0) tw=1; } for (int i=0;i<x.size();i++) { nei[x[i]].push_back({y[i],c[i]}); nei[y[i]].push_back({x[i],c[i]}); } vis[h]=1; dfs(0); for (int i=0;i<N;i++) vis[i]=0; bfs(h); if (dis[0]==inf) return -1; ans=dis[0]; for (int i=0;i<N;i++) { if (ra[i]&&val[i]==0) { if (tw==0) exit(-1); ans=min(ans,dis[i]); } } return 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:68:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   68 |     for (int i=0;i<x.size();i++)
      |                  ~^~~~~~~~~
#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...