Submission #691438

#TimeUsernameProblemLanguageResultExecution timeMemory
691438saayan007Race (IOI11_race)C++17
21 / 100
3055 ms12620 KiB
#include "race.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using pi = pair<int, int>; using pl = pair<long long, long long>; using vi = vector<int>; using vl = vector<long long>; using vpi = vector<pair<int, int>>; using vpl = vector<pair<long long, long long>>; #define fur(i, a, b) for(ll i = a; i <= (ll)b; ++i) #define ruf(i, a, b) for(ll i = a; i >= (ll)b; --i) #define fr first #define sc second #define mp make_pair #define pb emplace_back #define nl "\n" #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() const ll mxn = 2e5L + 1; vpl adj[mxn]; int dfs(ll cur, ll src, ll len, ll num, ll need) { if(len == need) { return num; } else if(len > need) { return mxn; } int ans = mxn; for(auto [ch, wt] : adj[cur]) { if(ch != src) { ans = min(ans, dfs(ch, cur, len + wt, num + 1, need)); } } return ans; } int best_path(int N, int K, int H[][2], int L[]) { fur(i, 0, N - 2) { ++H[i][0]; ++H[i][1]; adj[H[i][0]].pb(H[i][1], L[i]); adj[H[i][1]].pb(H[i][0], L[i]); } int ans = N; fur(i, 1, N) { ans = min(ans, dfs(i, -1, 0, 0, K)); } if(ans == N) 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...