Submission #1199670

#TimeUsernameProblemLanguageResultExecution timeMemory
1199670lizaRace (IOI11_race)C++20
21 / 100
3094 ms9948 KiB
#include <bits/stdc++.h>
#include "race.h"

using namespace std;

int k, n;
vector<pair<int, int>> g[200005];
int rez=-1;
void f(long long sum, int priv, int cur, int l)
{
   // cout << sum << " " << priv << " " << cur << " " << l << "\n";
    if(sum > k)return;
    if(sum==k)
    {
        if(rez==-1) rez=l;
        else
        {
            if( l < rez) rez=l;
        }
        return;
    }
    for(auto i: g[cur])
    {
        if(i.first==priv) continue;
        f(sum+i.second, cur, i.first, l+1);
    }
}


int best_path(int N, int K, int H[][2], int L[])
{
    n = N;
    k = K;
    for(int i =0; i < n-1; i++)
    {
        g[H[i][0]].push_back({H[i][1], L[i]});
        g[H[i][1]].push_back({H[i][0], L[i]});
    }
    for(int i =0; i < n; i++)
    {
        f(0, -1, i, 0);
    }
    return rez;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...