Submission #1139322

#TimeUsernameProblemLanguageResultExecution timeMemory
1139322RufatRace (IOI11_race)C++20
Compilation error
0 ms0 KiB
//Author RufatM
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/detail/standard_policies.hpp>
using namespace __gnu_pbds;
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<vector<int>> vvi;
typedef long long ll;
typedef vector<ll> vll;
typedef vector<vector<ll>> vvll;
typedef vector<double> vd;
typedef vector<vector<double>> vvd;
typedef vector<ld> vld;
typedef vector<vector<ld>> vvld;
typedef vector<ull> vull;
typedef vector<vector<ull>> vvull;
typedef vector<char> vc;
typedef vector<vector<char>> vvc;
typedef vector<pii> vpii;
typedef vector<vector<pii>> vvp;
typedef vector<bool> vb;
typedef vector<vector<bool>> vvb;
typedef vector<string> vs;
typedef vector<vector<string>> vvs;
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define endl '\n'
#define pb push_back
#define pf push_front
#define ppb pop_back
#define ppf pop_front
#define eb emplace_back
#define mp make_pair
#define lb lower_bound
#define ub upper_bound
#define ff first
#define ss second
#define YES cout << "YES" << endl
#define NO cout << "NO" << endl
#define all(x) begin(x), end(x)
#define rall(x) rbegin(x), rend(x)
#define pow(x, y) static_cast<int>(pow(x, y))
#define sz(x) (int)(x).sz()
#pragma GCC optimize("Ofast","unroll-loops","fast-math")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt")
#define ordered_set tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>
template<typename T> inline T sqr(T x) {return x*x;}
template<typename T> inline T modinv(T a, T mod){return 0;} 
template<class T> bool isPrime(T n){if(n<=1)return false;if(n<=3)return true;if(n%2==0||n%3==0)return false;for(T i=5;i*i<=n;i+=6)if(n%i==0||n%(i+2)==0)return false;return true;}
const int MOD = 1e9+7;
const int INF = 1e9 + 7;
const long long LINF = 1e18 + 7;
const int MAXN = 100005; 
vector<vector<pair<int, ll>>> adj;
vector<map<ll, int>> dp;
ll dist;
int edges = INF;
ll K;
void dfs(int u, int p) {
    dp[u][0] = 0;
    for(auto &edge : adj[u]) {
        int v = edge.first; 
        long long w = edge.second;
        if(v==p) continue;
        dfs(v,u);
        for(auto &cv : dp[v]) {
            long long distV = cv.first;
            int edgesV = cv.second;
            long long need = K - distV - w;
            auto it = dp[u].find(need);
            if(it != dp[u].end()) {
                int totalEdges = it->second + edgesV + 1; 
                ansEdges = min(ansEdges, totalEdges);
            }
        }
        for(auto &cv : dp[v]) {
            long long distV = cv.first + w; 
            int edgesV = cv.second + 1;
            if(dp[u].count(distV)==0) dp[u][distV] = edgesV;
            else dp[u][distV] = min(dp[u][distV], edgesV);
        }
    }
int best_path(int N, long long Kinput, vector<vector<int>> &H, vector<long long> &L) {
    K = Kinput;
    adj.resize(N);
    dp.resize(N);
    for (int i = 0; i < N - 1; ++i) {
        int u = H[i][0] - 1, v = H[i][1] - 1;
        long long w = L[i];
        adj[u].eb(v, w);
        adj[v].eb(u, w);
    }
    dfs(0, -1);
    return (edges == INF ? -1 : edges);
}
signed main() {
    fastio;
    int N;
    long long Kinput;
    cin >> N >> Kinput;
    vector<vector<int>> H(N - 1, vector<int>(2));
    vector<long long> L(N - 1);
    for (int i = 0; i < N - 1; ++i) {
        cin >> H[i][0] >> H[i][1] >> L[i];
    }
    cout << best_path(N, Kinput, H, L) << endl;
}

Compilation message (stderr)

race.cpp: In function 'void dfs(int, int)':
race.cpp:78:17: error: 'ansEdges' was not declared in this scope
   78 |                 ansEdges = min(ansEdges, totalEdges);
      |                 ^~~~~~~~
race.cpp:88:86: error: a function-definition is not allowed here before '{' token
   88 | int best_path(int N, long long Kinput, vector<vector<int>> &H, vector<long long> &L) {
      |                                                                                      ^
race.cpp:101:12: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
  101 | signed main() {
      |            ^~
race.cpp:101:12: note: remove parentheses to default-initialize a variable
  101 | signed main() {
      |            ^~
      |            --
race.cpp:101:12: note: or replace parentheses with braces to value-initialize a variable
race.cpp:101:15: error: a function-definition is not allowed here before '{' token
  101 | signed main() {
      |               ^
race.cpp:112:2: error: expected '}' at end of input
  112 | }
      |  ^
race.cpp:64:24: note: to match this '{'
   64 | void dfs(int u, int p) {
      |                        ^