Submission #1059643

#TimeUsernameProblemLanguageResultExecution timeMemory
1059643tolbiClosing Time (IOI23_closing)C++17
8 / 100
67 ms24656 KiB
#include "closing.h" #include <bits/stdc++.h> using namespace std; int max_score(int N, int X, int Y, long long K, std::vector<int> U, std::vector<int> V, std::vector<int> W) { vector<vector<pair<int,long long>>> arr(N); for (int i = 0; i < N-1; i++){ arr[U[i]].push_back({V[i],W[i]}); arr[V[i]].push_back({U[i],W[i]}); } priority_queue<array<long long,3>,vector<array<long long,3>>,greater<array<long long,3>>> pq; pq.push({0,X,1}); pq.push({0,Y,0}); int say = 0; vector<int> vis(N,0); while (pq.size()){ int node = pq.top()[1]; long long w = pq.top()[0]; int flag = pq.top()[2]; pq.pop(); if (vis[node]&(1<<flag)) continue; vis[node]+=(1<<flag); if (K<w) break; say++; K-=w; for (auto it : arr[node]){ pq.push({w+it.second,it.first,flag}); } } return say; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...