Submission #980143

#TimeUsernameProblemLanguageResultExecution timeMemory
980143alo_54Closing Time (IOI23_closing)C++17
0 / 100
134 ms29272 KiB
#include "closing.h" #include <bits/stdc++.h> using namespace std; const long long oo = 1e14; int x, y, n; struct Arista { int v; long long w; }; struct Nodo { vector <Arista> ady; long long dist, distP = oo; bool vis = false; }; struct Estado { bool operator< (Estado otro) const { return p <otro.p; } long long p; int idx; }; struct Comp { bool operator() (Estado a, Estado b) const { return a.p < b.p; } }; vector <Nodo> tree; int max_score(int N, int X, int Y, long long K, std::vector<int> U, std::vector<int> V, std::vector<int> W) { tree.resize(N); for (int i = 0; i < N-1; i++) { tree[U[i]].ady.push_back({V[i], W[i]}); tree[V[i]].ady.push_back({U[i], W[i]}); } priority_queue <Estado, vector <Estado>, Comp>pq; pq.push({0, X}); pq.push({0, Y}); tree[Y].dist = 0; tree[X].dist = 0; while (!pq.empty()) { Estado curr = pq.top(); pq.pop(); tree[curr.idx].dist = tree[curr.idx].distP; tree[curr.idx].vis = true; for (auto i : tree[curr.idx].ady) { if (!tree[i.v].vis) { tree[i.v].distP = min(tree[i.v].distP, curr.p + i.w); pq.push({tree[i.v].distP, i.v}); } } } priority_queue <long long> minW; for (auto i: tree) { minW.push(i.dist * -1); } int resp = 0; long long sum = 0; while (!minW.empty()) { sum += minW.top()*(long long)-1; if (sum <= K) { resp ++; }else { return resp; } } }

Compilation message (stderr)

closing.cpp: In function 'int max_score(int, int, int, long long int, std::vector<int>, std::vector<int>, std::vector<int>)':
closing.cpp:60:51: warning: control reaches end of non-void function [-Wreturn-type]
   60 |     priority_queue <Estado, vector <Estado>, Comp>pq;
      |                                                   ^~
#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...