Submission #1192437

#TimeUsernameProblemLanguageResultExecution timeMemory
1192437faricaRace (IOI11_race)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> #include "race.h" using namespace std; using vi = vector<int>; using pi = pair<int,int>; typedef long long ll; int ans, k; vi depth; vector<map<int,int>>paths; vector<vector<pi>>adjL; void dfs(int pos, int prev, int sum) { for(pi adj: adjL[pos]) { if(adj.first == prev) continue; depth[adj.first] = depth[pos] + 1; dfs(adj.first, pos, sum + adj.second); if(paths[adj.first].size() > paths[pos].size()) swap(paths[adj.first], paths[pos]); for(auto it = paths[adj.first].begin(); it != paths[adj.first].end(); ++it) { if(!paths[pos][it->first]) paths[pos][it->first] = it->second; else paths[pos][it->first] = min(paths[pos][it->first], it->second); } } if(paths[pos][sum+K]) { int cur = paths[pos][sum+K] - depth[pos]; if(ans == -1) ans = cur; else ans = min(ans, cur); } } int best_path(int N, int K, int H[][2], int L[]) { ans = -1, k = K; paths.resize(N); depth.assign(N, 0); adjL.assign(N, vi()); for(int i=0; i<n-1; ++i) { adjL[H[i][0]].push_back({H[i][1], L[i]}); adjL[H[i][1]].push_back({H[i][0], L[i]}); } dfs(0,0); return ans; }

Compilation message (stderr)

race.cpp: In function 'void dfs(int, int, int)':
race.cpp:25:27: error: 'K' was not declared in this scope
   25 |         if(paths[pos][sum+K]) {
      |                           ^
race.cpp: In function 'int best_path(int, int, int (*)[2], int*)':
race.cpp:36:14: error: no matching function for call to 'std::vector<std::vector<std::pair<int, int> > >::assign(int&, vi)'
   36 |   adjL.assign(N, vi());
      |   ~~~~~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/11/vector:67,
                 from /usr/include/c++/11/functional:62,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from race.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:768:9: note: candidate: 'template<class _InputIterator, class> void std::vector<_Tp, _Alloc>::assign(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; <template-parameter-2-2> = <template-parameter-1-2>; _Tp = std::vector<std::pair<int, int> >; _Alloc = std::allocator<std::vector<std::pair<int, int> > >]'
  768 |         assign(_InputIterator __first, _InputIterator __last)
      |         ^~~~~~
/usr/include/c++/11/bits/stl_vector.h:768:9: note:   template argument deduction/substitution failed:
race.cpp:36:14: note:   deduced conflicting types for parameter '_InputIterator' ('int' and 'std::vector<int>')
   36 |   adjL.assign(N, vi());
      |   ~~~~~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/11/vector:67,
                 from /usr/include/c++/11/functional:62,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from race.cpp:1:
/usr/include/c++/11/bits/stl_vector.h:749:7: note: candidate: 'void std::vector<_Tp, _Alloc>::assign(std::vector<_Tp, _Alloc>::size_type, const value_type&) [with _Tp = std::vector<std::pair<int, int> >; _Alloc = std::allocator<std::vector<std::pair<int, int> > >; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::value_type = std::vector<std::pair<int, int> >]'
  749 |       assign(size_type __n, const value_type& __val)
      |       ^~~~~~
/usr/include/c++/11/bits/stl_vector.h:749:47: note:   no known conversion for argument 2 from 'vi' {aka 'std::vector<int>'} to 'const value_type&' {aka 'const std::vector<std::pair<int, int> >&'}
  749 |       assign(size_type __n, const value_type& __val)
      |                             ~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/11/bits/stl_vector.h:794:7: note: candidate: 'void std::vector<_Tp, _Alloc>::assign(std::initializer_list<_Tp>) [with _Tp = std::vector<std::pair<int, int> >; _Alloc = std::allocator<std::vector<std::pair<int, int> > >]'
  794 |       assign(initializer_list<value_type> __l)
      |       ^~~~~~
/usr/include/c++/11/bits/stl_vector.h:794:7: note:   candidate expects 1 argument, 2 provided
race.cpp:37:18: error: 'n' was not declared in this scope
   37 |   for(int i=0; i<n-1; ++i) {
      |                  ^
race.cpp:41:6: error: too few arguments to function 'void dfs(int, int, int)'
   41 |   dfs(0,0);
      |   ~~~^~~~~
race.cpp:14:6: note: declared here
   14 | void dfs(int pos, int prev, int sum) {
      |      ^~~