제출 #1202154

#제출 시각아이디문제언어결과실행 시간메모리
1202154ezzzayCyberland (APIO23_cyberland)C++20
0 / 100
17 ms9796 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();
	}
	//dfs(0,-1);
	priority_queue< pair<int,int>> q;
	arr[0]=0;
	q.push({0,0});
	dst[0]=0;
	/*for(int i=0;i<N;i++){
		if(arr[i]==0 and vis[i]){
			dst[i]=0;
		}
	}
	*/
	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...