Submission #1168460

#TimeUsernameProblemLanguageResultExecution timeMemory
1168460rayan_bdCyberland (APIO23_cyberland)C++20
0 / 100
204 ms2360 KiB
#include <bits/stdc++.h>
using namespace std;

const double INF = 5e9+0.1;
const int mxN = 5;
vector<pair<int,int>> adj[mxN];

vector<int> ar;
double ans=INF;


void dfs(int u,int par,int h,double cost){
	if(u==h){
		ans=min(ans,cost);
		return;
	}
	if(ar[u]==2) cost/=2;
	for(auto it:adj[u]){
		if(it.first^par){
			dfs(it.first,u,h,cost+it.second);
		}
	}
}

double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr){
	ar=arr;
	for(int i=1;i<=N;++i) adj[i].clear();
	for(int i=0;i<M;++i){
		adj[x[i]].push_back({y[i],c[i]});
		adj[y[i]].push_back({x[i],c[i]});
	} ans=INF;
	dfs(0,-1,H,0);
	return (ans==INF?-1:ans);
}
#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...