#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define ll long long
#include <vector>
const int MN=3e5;
vector<pair<int,ll>>v[MN];
ll distx[MN],disty[MN];
void dfsx(int a, int p){
for(auto t:v[a]){
if(p==t.ff)continue;
distx[t.ff]=distx[a]+t.ss;
dfsx(t.ff,a);
}
}
void dfsy(int a, int p){
for(auto t:v[a]){
if(p==t.ff)continue;
disty[t.ff]=disty[a]+t.ss;
dfsy(t.ff,a);
}
}
int max_score(int N, int X, int Y, long long K,
std::vector<int> U, std::vector<int> V, std::vector<int> W)
{
for(int i=0;i<N;i++){
v[i].clear();
}
ll k=K;
for(int i=0;i<N-1;i++){
int a=U[i];
int b=V[i];
ll c=W[i];
v[a].pb({b,c});
v[b].pb({a,c});
}
dfsx(X,-1);
dfsy(Y,-1);
vector<ll>vx,vy;
for(int i=0;i<N;i++){
vx.pb(distx[i]);
vy.pb(disty[i]);
}
sort(vx.begin(),vx.end());
sort(vy.begin(),vy.end());
for(int i=1;i<N;i++){
vy[i]+=vy[i-1];
}
ll s=0;
int ans=0;
for(int i=0;i<N;i++){
s+=vx[i];
if(s>k)break;
auto it=upper_bound(vy.begin(),vy.end(),k-s)-vy.begin();
it++;
ans=max(ans,i+int(it));
}
return ans;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
7768 KB |
1st lines differ - on the 1st token, expected: '6', found: '5' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
80 ms |
31620 KB |
Output is correct |
2 |
Correct |
83 ms |
37760 KB |
Output is correct |
3 |
Incorrect |
45 ms |
12892 KB |
2nd lines differ - on the 1st token, expected: '38', found: '9' |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
7772 KB |
Output is correct |
2 |
Incorrect |
1 ms |
7772 KB |
1st lines differ - on the 1st token, expected: '30', found: '24' |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
7772 KB |
Output is correct |
2 |
Incorrect |
1 ms |
7772 KB |
1st lines differ - on the 1st token, expected: '30', found: '24' |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
7772 KB |
Output is correct |
2 |
Incorrect |
1 ms |
7772 KB |
1st lines differ - on the 1st token, expected: '30', found: '24' |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
7768 KB |
1st lines differ - on the 1st token, expected: '6', found: '5' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
7768 KB |
1st lines differ - on the 1st token, expected: '6', found: '5' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
7768 KB |
1st lines differ - on the 1st token, expected: '6', found: '5' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
7768 KB |
1st lines differ - on the 1st token, expected: '6', found: '5' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
7768 KB |
1st lines differ - on the 1st token, expected: '6', found: '5' |
2 |
Halted |
0 ms |
0 KB |
- |