제출 #1144523

#제출 시각아이디문제언어결과실행 시간메모리
1144523zhasyn경주 (Race) (IOI11_race)C++20
21 / 100
3096 ms11396 KiB
#include "race.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define F first
#define S second
#define pll pair <ll, ll>
const ll N =2 * 1e5 + 100;
vector <pll> q[N];
int k, ans = INT_MAX;
void dfs(int v, int pred, int sum, int cnt){
	if(sum > k) return;
	if(sum == k){
		ans = min(ans, cnt);
		return;
	}
	for(auto u : q[v]){
		if(u.F == pred) continue;
		dfs(u.F, v, sum + u.S, cnt + 1);
	}
}
int best_path(int n, int gk, int h[][2], int l[]){
	k = gk;
  for(int i = 0; i < n - 1; i++){
	q[h[i][0]].pb({h[i][1], l[i]});
	q[h[i][1]].pb({h[i][0], l[i]});
  }
  for(int i = 1; i <= n; i++){
  	dfs(i, -1, 0, 0);
  }
  if(ans == INT_MAX) return -1;
  return ans;
}


// int main(){
	// vector <int> s;
	// int n;
	// cin >> n;
	// for(int i = 0, x; i < n; i++){
		// cin >> x;
		// s.pb(x);
	// }
	// return 0;
// }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...