Submission #1202157

#TimeUsernameProblemLanguageResultExecution timeMemory
1202157ezzzayCyberland (APIO23_cyberland)C++20
8 / 100
1521 ms2162688 KiB
#include<bits/stdc++.h> using namespace std; #define pb push_back #define ll double #define ff first #define ss second const int MX=3e5; vector< pair<int,ll> >v[MX]; ll dst[MX]; bool vis[MX]; void dfs(int a, int p){ vis[a]=1; for(auto [b,c] : v[a]){ if(b==p)continue; dfs(b,a); } } 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) { for(int i=0;i<N;i++){ dst[i]=1e17; vis[i]=0; v[i].clear(); } for(int i=0;i<M;i++){ v[x[i]].pb({y[i],c[i]}); v[y[i]].pb({x[i],c[i]}); } dfs(0,-1); priority_queue< pair<int,int>> q; arr[0]=0; for(int i=0;i<N;i++){ if(arr[i]==0 and vis[i]){ dst[i]=0; q.push({0,i}); } } while(!q.empty()){ int a=q.top().ss; int w= - q.top().ff; q.pop(); for(auto [b,c]:v[a]){ if(dst[b]> dst[a]+c){ dst[b]=dst[a]+c; q.push({-dst[b],b}); } } } if(dst[H]==1e17)dst[H]=-1; return dst[H]; }
#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...