제출 #94497

#제출 시각아이디문제언어결과실행 시간메모리
94497adletRace (IOI11_race)C++17
9 / 100
35 ms7672 KiB
#include <bits/stdc++.h>
#include "race.h"

using namespace std;

const int INF = 1e9;
const int NN = 2e5 + 5;

int ans = INF, k;

vector < pair < int, int > > g[NN];

inline void dfs(int v, int sum = 0, int p = -1, int h = 0) {
    if (sum > k || h > ans)
        return;
    if (sum == k) {
        ans = min(ans, h);
        return;
    }
    for (auto node : g[v]) {
        int to = node.first, len = node.second;
        if (to == p)
            continue;
        dfs(to, sum + len, v, h + 1);
    }
}

int best_path(int N, int K, int H[][2], int L[]){
    k = K;
    for (int i = 0; i < N; ++i) {
//        int v = H[i][0], u = H[i][1];
//        g[v].push_back({u, L[i]});
//        g[u].push_back({v, L[i]});
    }
    for (int l = 0; l < N; ++l) {
        int sum = 0;
        for (int r = l; r < N; ++r) {
            sum += L[r];
            if (sum == K) {
                ans = min(ans, r - l + 1);
            }
            if (sum > K)
                break;
        }
    }
//    for (int i = 0; i < N; ++i)
//        dfs(i);
    if (ans == INF)
        ans = -1;
    return ans;
}
/*


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