Submission #824131

#TimeUsernameProblemLanguageResultExecution timeMemory
824131MosesRoad Closures (APIO21_roads)C++14
0 / 100
595 ms27388 KiB
#include "roads.h" #include <bits/stdc++.h> #define F first #define S second using namespace std; const int N = 1e5+7; typedef pair<int,int> pii; vector<int> g[N]; int deg[N]; std::vector<long long> minimum_closure_costs(int N, std::vector<int> U, std::vector<int> V, std::vector<int> W) { vector<long long> ans(N,0); int n = N; for(int i = 0 ; i < n-1 ; i++) { g[U[i]].push_back(V[i]); g[V[i]].push_back(U[i]); deg[U[i]]++; deg[V[i]]++; } set<pii> st; for(int i = 0 ; i < n ; i++) st.insert({-deg[i],i}); int cnt = 0; for(int i = N-1 ; i >= 0 ; i--) { while(-(*st.begin()).F > i) { auto x = *st.begin(); st.erase(st.begin()); cnt++; int u = x.S; pii mx = {-1,-1}; sort(g[u].begin(),g[u].end(),[&](int x,int y) {return deg[x] < deg[y];}); int v = g[u].back(); g[u].pop_back(); st.erase({-deg[v],v}); //cerr << u << ' ' << v << '\n'; sort(g[v].begin(),g[v].end(),[&](int x,int y) {return deg[x] < deg[y];}); g[v].pop_back(); deg[u]--; if (deg[u]) st.insert({-deg[u],u}); deg[v]--; if (deg[v]) { st.insert({-deg[v],v}); } } ans[i] = cnt; } return ans; }

Compilation message (stderr)

roads.cpp: In function 'std::vector<long long int> minimum_closure_costs(int, std::vector<int>, std::vector<int>, std::vector<int>)':
roads.cpp:33:8: warning: variable 'mx' set but not used [-Wunused-but-set-variable]
   33 |    pii mx = {-1,-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...