Submission #844690

#TimeUsernameProblemLanguageResultExecution timeMemory
844690oneloveforeverClosing Time (IOI23_closing)C++17
0 / 100
1141 ms1975804 KiB
#include "closing.h" #include <bits/stdc++.h> using namespace std; #define x first #define y second #define ii pair<int,int> #define ll long long int n,a,b; ll k; vector<vector<ii> >edge; void dfs(int x,int par,int type,vector<ll>&dist) { for(ii need:edge[x]) { int node=need.x; int value=need.y; if(node==par)continue; dist[node]=dist[x]+value; dfs(node,x,type,dist); } } int Sub1() { queue<int>q; vector<int>source(2); vector<vector<ll> >dist(2,vector<ll>(n+1)); source[0]=a; source[1]=b; for(int type=0; type<=1; type++)dfs(source[type],0,type,dist[type]); vector<ll>que; for(int i=0; i<=n-1; i++) { que.push_back(dist[0][i]); que.push_back(dist[1][i]); } sort(que.begin(),que.end()); ll res=k; int ans=0; for(int value:que) { if(res<value)break; res-=value; ans++; } return ans; } int max_score(int N,int X,int Y,long long K,vector<int>U,vector<int>V,vector<int>W) { n=N; a=X; b=Y; k=K; edge.resize(n); for(int i=1; i<=N-1; i++) { int x=U[i-1]; int y=V[i-1]; int value=W[i-1]; edge[x].push_back({y,value}); edge[y].push_back({x,value}); } return Sub1(); } /*signed main() { int n,x,y,k; vector<int>U; vector<int>V; vector<int>W; cin>>n>>x>>y>>k; for(int i=1; i<=n-1; i++) { int x; cin>>x; U.push_back(x); } for(int i=1; i<=n-1; i++) { int y; cin>>y; V.push_back(y); } for(int i=1; i<=n-1; i++) { int value; cin>>value; W.push_back(value); } cout<<max_score(n,x,y,k,U,V,W); }*/
#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...