Submission #226497

#TimeUsernameProblemLanguageResultExecution timeMemory
226497mohamedsobhi777Race (IOI11_race)C++14
21 / 100
3081 ms7544 KiB
#include<bits/stdc++.h>
#include "race.h"

using namespace std ; 

const int NN = 1e5 + 7 ; 
int n , k ; 
vector<pair<int , int > > adj[NN]  ;

long long ans = 10000000000000 ; 

int dfs(int x , int p , long long sum , long long l){
    

    if(sum==k){
        ans = min(ans , l) ; 
    }

    for(auto u : adj[x]){
        if(u.first==p)continue ; 
        dfs(u.first , x , sum+u.second , l+1) ; 
    }

}

int best_path(int N, int K, int H[][2], int L[])
{
    n = N ;
    k = K ;
    bool zez = 0 ; 
    for(int i = 0 ;i < n-1 ;i++){
        adj[H[i][0]+1].push_back({H[i][1]+1 , L[i]}) ; 
        adj[H[i][1]+1].push_back({H[i][0]+1, L[i]}) ; 
        zez|=!L[i] ; 
    }
    for(int i =1 ;i <= n;i++){
        dfs(i , i , 0 , 0) ; 
    }
    if(ans==10000000000000) ans = -1 ; 
    if(!k&&zez)ans = 1 ; 
    return ans ; 
}

Compilation message (stderr)

race.cpp: In function 'int dfs(int, int, long long int, long long int)':
race.cpp:24:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...