제출 #691435

#제출 시각아이디문제언어결과실행 시간메모리
691435saayan007경주 (Race) (IOI11_race)C++17
9 / 100
3080 ms11152 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, ll tar) { if(cur == tar) { return len == need ? num : mxn; } int ans = mxn; for(auto [ch, wt] : adj[cur]) { if(ch != src) { ans = min(ans, dfs(ch, cur, len +wt, num + 1, need, tar)); } } 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) { fur(j, i + 1, N){ ans = min(ans, dfs(i, -1, 0, 0, K, j)); } } 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...