Submission #824201

#TimeUsernameProblemLanguageResultExecution timeMemory
824201Mouad_oujRace (IOI11_race)C++17
31 / 100
240 ms114412 KiB
#include<bits/stdc++.h>
using namespace std;
int dp[200001][101],ans=200001,n,k;
vector<vector< pair<int,int>> > tree;
void dfs(int node,int par)
{
    for(int x=0;x<tree[node].size();x++)
    {
        int to=tree[node][x].first;
        int dis=tree[node][x].second;
        if(par==to)
        continue;
        dfs(to,node);
        for(int x=0;x<=k-dis;x++)
        ans=min(ans,dp[node][x]+dp[to][k-dis-x]+1);   //f sub sol
        for(int x=0;x+dis<=k;x++)
        dp[node][x+dis]=min(dp[node][x+dis],dp[to][x]+1); //s sub sol
    }
}
int best_path(int N,int K,int bet[][2],int w[])
{
    n=N;
    k=K;
    tree.resize(n+1);
    for(int x=0;x<200001;x++)
    {
       for(int y=0;y<101;y++)
       dp[x][y]=200001;
    }
    for(int x=0;x<n;x++)
       dp[x][0]=0;
    for(int x=0;x<n-1;x++)
    {
        tree[bet[x][0]].push_back(make_pair(bet[x][1],w[x]));
        tree[bet[x][1]].push_back(make_pair(bet[x][0],w[x]));
    }
    dfs(0,-1);
    if(ans!=200001)
    return ans;
    return -1;
}

Compilation message (stderr)

race.cpp: In function 'void dfs(int, int)':
race.cpp:7:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    7 |     for(int x=0;x<tree[node].size();x++)
      |                 ~^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...