Submission #1304553

#TimeUsernameProblemLanguageResultExecution timeMemory
1304553h1drogenRace (IOI11_race)C++20
Compilation error
0 ms0 KiB
#include "race.h"
#include <climits>
#include <vector>
#include <utility> // для pair
using namespace std;

int best_path(int N, int K, int H[][2], int L[]) {
    vector<vector<pair<int,int>>> g(N);
    for(int i=0;i<N-1;i++){
        g[H[i][0]].push_back(make_pair(H[i][1], L[i]));
        g[H[i][1]].push_back(make_pair(H[i][0], L[i]));
    }

    int answer = INT_MAX;

    // Обычный рекурсивный DFS без std::function и лямбд
    void dfs(int v, int p, int length, int edges, vector<vector<pair<int,int>>> &g, int K, int &answer) {
        if(length == K){
            if(edges > 0) // путь хотя бы с одной дорогой
                answer = min(answer, edges);
            return;
        }
        if(length > K) return;

        for(size_t i=0;i<g[v].size();i++){
            int u = g[v][i].first;
            int w = g[v][i].second;
            if(u != p){
                dfs(u, v, length + w, edges + 1, g, K, answer);
            }
        }
    }

    for(int i=0;i<N;i++){
        dfs(i, -1, 0, 0, g, K, answer);
    }

    if(answer == INT_MAX) return -1;
    return answer;
}

Compilation message (stderr)

race.cpp: In function 'int best_path(int, int, int (*)[2], int*)':
race.cpp:17:105: error: a function-definition is not allowed here before '{' token
   17 |     void dfs(int v, int p, int length, int edges, vector<vector<pair<int,int>>> &g, int K, int &answer) {
      |                                                                                                         ^
race.cpp:35:9: error: 'dfs' was not declared in this scope
   35 |         dfs(i, -1, 0, 0, g, K, answer);
      |         ^~~