Submission #1202163

#TimeUsernameProblemLanguageResultExecution timeMemory
1202163ezzzayCyberland (APIO23_cyberland)C++20
15 / 100
20 ms12360 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]=2e18;
		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]});
	}
	priority_queue< pair<int,int>> q;
	arr[0]=0;
	for(int i=0;i<1;i++){
		if(arr[i]==0){
			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]==2e18)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...