Submission #1304700

#TimeUsernameProblemLanguageResultExecution timeMemory
1304700quollcucumber`Factories (JOI14_factories)C++20
15 / 100
8090 ms51208 KiB
#include "factories.h" #include <bits/stdc++.h> #define int long long using namespace std; vector<pair<int, int>> neighbors[500005]; int n; void Init(signed N, signed A[], signed B[], signed 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(signed S, signed X[], signed T, signed 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...