Submission #1199623

#TimeUsernameProblemLanguageResultExecution timeMemory
1199623ricardsjansons경주 (Race) (IOI11_race)C++20
21 / 100
1908 ms327680 KiB
#include "race.h"
#include <bits/stdc++.h>
#define ll long long
using namespace std;

const int INF=1e9;

int best_path(int N, int K, int H[][2], int L[])
{
    vector<vector<pair<int,int>>>adj(N);
    queue<tuple<int,int,int,ll>>q;
    for(int i=0;i<N-1;i++){
        auto[u,v]=H[i];
        int l=L[i];
        adj[u].push_back({v,l});
        adj[v].push_back({u,l});
        q.push({1,u,v,l});
        q.push({1,v,u,l});
    }
    int res=INF;
    while(!q.empty()){
        auto[r,u,v,s]=q.front();
        q.pop();
        if(s==K){
            res=min(res,r);
        }
        if(s>=K){
            continue;
        }
        for(auto[w,l]:adj[v]){
            if(w!=u){
                q.push({r+1,v,w,s+l});
            }
        }
    }
    return (res==INF?-1:res);
}

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