#include "closing.h"
#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)
{
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;
ll ans=0;
for(ll 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+it+1);
}
return ans;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1111 ms |
1806828 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
183 ms |
34972 KB |
1st lines differ - on the 1st token, expected: '451', found: '452' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
3 ms |
7260 KB |
1st lines differ - on the 1st token, expected: '3', found: '4' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
3 ms |
7260 KB |
1st lines differ - on the 1st token, expected: '3', found: '4' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
3 ms |
7260 KB |
1st lines differ - on the 1st token, expected: '3', found: '4' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1111 ms |
1806828 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1111 ms |
1806828 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1111 ms |
1806828 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1111 ms |
1806828 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1111 ms |
1806828 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |