Submission #427550

#TimeUsernameProblemLanguageResultExecution timeMemory
427550chirathnirodhaRace (IOI11_race)C++17
0 / 100
48 ms70724 KiB
//Coded by Chirath Nirodha #include "race.h" #include<bits/stdc++.h> using namespace std; #define MP make_pair #define PB push_back #define F first #define S second #define P push typedef long long ll; map<int,int> mp[1000000]; vector<pair<int,int> > adj[1000000]; int ans=10000010; int kk; void dfs(int x,int y){ for(int i=0;i<adj[y].size();i++){ int to=adj[y][i].F; int len=adj[y][i].S; if(to==x)continue; dfs(y,to); for(auto itr=mp[to].begin();itr!=mp[to].end();itr++){ pair<int,int> p=*itr; if(p.F+len==kk)ans=min(ans,p.S+1); else if(mp[y][kk-(p.F+len)]!=0)ans=min(ans,p.S+1+mp[y][kk-(p.F+len)]); } if(len<=kk)mp[y][len]=1; if(len==kk)ans=1; for(auto itr=mp[to].begin();itr!=mp[to].end();itr++){ pair<int,int> p=*itr; if(p.F+len>kk)continue; if(mp[y][p.F+len]==0)mp[y][p.F+len]=p.S+1; else mp[y][p.F+len]=min(mp[y][p.F+len],p.S+1); } mp[to].clear(); } } int best_path(int n, int K, int h[][2], int l[]){ kk=K; for(int i=0;i<n-1;i++){ adj[h[i][0]].PB(MP(h[i][1],l[i])); adj[h[i][1]].PB(MP(h[i][0],l[i])); } dfs(0,0); if(ans>=n)return -1; return ans; }

Compilation message (stderr)

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