This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
vector<vector<pair<int, long long>>> adj;
vector<int> W;
int N, Y, X;
long long DP(int curr, int prv, int K, int time, long long ans, int connectedCities, int connectedXY, bool stop){
long long val = 0;
if(stop){
val += (connectedCities*connectedXY)-connectedXY;
connectedCities=1;
}
if(curr==X || curr==Y){
connectedXY++;
}
if(time+W[curr]>K){
val += connectedCities*connectedXY;
connectedCities=1;
return val;
}
if(adj[curr][0].first==prv){
if(adj[curr].size()!=1){
val = DP(adj[curr][1].first, curr, K, time+W[curr], ans, connectedCities+1, connectedXY, false);
val = max(DP(adj[curr][1].first, curr, K, time, ans, connectedCities, 0, true), val);
}
}
else{
val= DP(adj[curr][0].first, curr, K, time+W[curr], ans, connectedCities+1, connectedXY, false);
val = max(DP(adj[curr][0].first, curr, K, time, ans, connectedCities, 0, true), val);
}
if(adj[curr].size()==1){
val += (connectedCities*connectedXY)-connectedXY;
connectedCities=1;
}
return val;
}
int max_score(int n, int x, int y, long long K, vector<int> U, vector<int> V, vector<int> w){
N=n;
Y=y;
X=x;
W=w;
adj.assign(N, vector<pair<int, long long>>(0));
for(int i = 0; i < N-1; i++){
adj[U[i]].push_back({V[i], W[i]});
adj[V[i]].push_back({U[i], W[i]});
}
int start = -1;
for(int i = 0; i < N; i++){
if(adj[i].size()==1){
start=i;
break;
}
}
long long ans = DP(start, -1, K, 0, 0, 1, 0, false);
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |