Submission #1304698

#TimeUsernameProblemLanguageResultExecution timeMemory
1304698quollcucumber`Factories (JOI14_factories)C++20
0 / 100
8089 ms43304 KiB
#include "factories.h" #include <bits/stdc++.h> using namespace std; vector<pair<int, int>> neighbors[500005]; int n; void Init(int N, int A[], int B[], int D[]) { n = N; for(int i = 0 ; i < n - 1; i++) { neighbors[A[i]].push_back({B[i], D[i]}); neighbors[B[i]].push_back({A[i], D[i]}); } } long long Query(int S, int X[], int T, int Y[]) { bool seen[n]; memset(seen, false, sizeof(seen)); vector<pair<int, int>>v; priority_queue p(v.begin(), v.end(), greater<pair<int, int>>()); set<int> end; for(int i = 0; i < T; i++) { end.insert(Y[i]); } for(int i = 0; i < S; i++) { p.push({0, X[i]}); } while(!p.empty()) { int dist = p.top().first; int node = p.top().second; p.pop(); if(!seen[node]) { seen[node] = true; if(end.contains(node)) return dist; for(pair<int, int> i : neighbors[node]) { if(!seen[i.first]) { p.push({dist + i.second, i.first}); } } } } return -1 ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...