Submission #984731

#TimeUsernameProblemLanguageResultExecution timeMemory
984731Faisal_SaqibCyberland (APIO23_cyberland)C++17
0 / 100
1563 ms2097152 KiB
#include "cyberland.h" #include <bits/stdc++.h> using namespace std; const int N=1e5+10; vector<pair<int,int>> adj[N]; double ans=0; int WANT; void dfs(int v,int p=-1,double dis=0) { if(v==WANT) { ans=dis; } for(auto [u,w]:adj[v]) { if(u!=p) { dfs(u,v,dis+w); } } } double solve(int n, int m, int k, int h, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) { WANT=h; if(m==(n-1)) { //We have a Tree bool all_one=1; for(auto i:arr) all_one&=(i==1); for(int j=0;j<m;j++) { adj[x[j]].push_back({y[j],c[j]}); adj[y[j]].push_back({x[j],c[j]}); } if(all_one) { // this is easy // just calculate the distance between 0 and h dfs(0); return ans; } else{ } } return -1; }
#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...