Submission #336121

#TimeUsernameProblemLanguageResultExecution timeMemory
336121wind_reaperDreaming (IOI13_dreaming)C++17
Compilation error
0 ms0 KiB
#include "dreaming.h" #include <bits/stdc++.h> using namespace std; vector<vector<pair<int, int>>> adj; vector<int> vis, path, vis2, father, father_dis; vector<int> components, c2; void new_comp(int node, int c, int N){ vis2.assign(N, 0); father.assign(N, -1); father_dis.assign(N, 0); queue<pair<int, int>> q; q.push({node, 0}); vector<int> dis(N, 0); int r = 0; while(!q.empty()){ pair<int, int> cur = q.front(); q.pop(); r++; vis[cur.first] = 1; dis[cur.first] = cur.second; for(pair<int, int> e : adj[cur.first]){ if(!vis[e.first]) q.push({e.first, cur.second + e.second}); } } if(r == 1) return; int end = max_element(dis.begin(), dis.end()) - dis.begin(); dis.assign(N, 0); q.push({end, 0}); while(!q.empty()){ pair<int, int> cur = q.front(); q.pop(); vis2[cur.first] = 1; dis[cur.first] = cur.second; for(pair<int, int> e : adj[cur.first]){ if(!vis2[e.first]){ father[e.first] = cur.first; father_dis[e.first] = e.second; q.push({e.first, cur.second + e.second}); } } } auto it = max_element(dis.begin(), dis.end()); end = it - dis.begin(); int pops = father[end]; int cur_dis = INT_MAX; int travel = 0; while(pops != -1){ travel += father_dis[end]; cur_dis = min(cur_dis, max(travel, *it - travel)); end = pops; pops = father[end]; } c2.push_back(*it); components.push_back(cur_dis); } int travelTime(int N, int M, int L, int A[], int B[], int T[]) { adj.resize(N); vis.resize(N); for(int i = 0; i < M; i++){ adj[A[i]].push_back({B[i], T[i]}); adj[B[i]].push_back({A[i], T[i]}); } int c = 0; for(int i = 0; i < N; i++){ if(!vis[i]){ new_comp(i, c++, N); } } sort(components.rbegin(), components.rend()); if(c == 1) return components[0]; if(c == 2) return max(max(c2.begin(), c2.end()), components[0] + components[1] + L); return max({max(c2.begin(), c2.end()), components[0] + components[1] + L, components[1] + components[2] + 2*L}); }

Compilation message (stderr)

dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:85:77: error: no matching function for call to 'max(const __gnu_cxx::__normal_iterator<int*, std::vector<int> >&, __gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type)'
   85 |      return max(max(c2.begin(), c2.end()), components[0] + components[1] + L);
      |                                                                             ^
In file included from /usr/include/c++/9/bits/specfun.h:45,
                 from /usr/include/c++/9/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:41,
                 from dreaming.cpp:2:
/usr/include/c++/9/bits/stl_algobase.h:222:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  222 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/9/bits/stl_algobase.h:222:5: note:   template argument deduction/substitution failed:
dreaming.cpp:85:77: note:   deduced conflicting types for parameter 'const _Tp' ('__gnu_cxx::__normal_iterator<int*, std::vector<int> >' and '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'})
   85 |      return max(max(c2.begin(), c2.end()), components[0] + components[1] + L);
      |                                                                             ^
In file included from /usr/include/c++/9/bits/specfun.h:45,
                 from /usr/include/c++/9/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:41,
                 from dreaming.cpp:2:
/usr/include/c++/9/bits/stl_algobase.h:268:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  268 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/9/bits/stl_algobase.h:268:5: note:   template argument deduction/substitution failed:
dreaming.cpp:85:77: note:   deduced conflicting types for parameter 'const _Tp' ('__gnu_cxx::__normal_iterator<int*, std::vector<int> >' and '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'})
   85 |      return max(max(c2.begin(), c2.end()), components[0] + components[1] + L);
      |                                                                             ^
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from dreaming.cpp:2:
/usr/include/c++/9/bits/stl_algo.h:3456:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3456 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/9/bits/stl_algo.h:3456:5: note:   template argument deduction/substitution failed:
dreaming.cpp:85:77: note:   '__gnu_cxx::__normal_iterator<int*, std::vector<int> >' is not derived from 'std::initializer_list<_Tp>'
   85 |      return max(max(c2.begin(), c2.end()), components[0] + components[1] + L);
      |                                                                             ^
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from dreaming.cpp:2:
/usr/include/c++/9/bits/stl_algo.h:3462:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3462 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/9/bits/stl_algo.h:3462:5: note:   template argument deduction/substitution failed:
dreaming.cpp:85:77: note:   '__gnu_cxx::__normal_iterator<int*, std::vector<int> >' is not derived from 'std::initializer_list<_Tp>'
   85 |      return max(max(c2.begin(), c2.end()), components[0] + components[1] + L);
      |                                                                             ^
dreaming.cpp:86:115: error: no matching function for call to 'max(<brace-enclosed initializer list>)'
   86 |     return max({max(c2.begin(), c2.end()), components[0] + components[1] + L, components[1] + components[2] + 2*L});
      |                                                                                                                   ^
In file included from /usr/include/c++/9/bits/specfun.h:45,
                 from /usr/include/c++/9/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:41,
                 from dreaming.cpp:2:
/usr/include/c++/9/bits/stl_algobase.h:222:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  222 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/9/bits/stl_algobase.h:222:5: note:   template argument deduction/substitution failed:
dreaming.cpp:86:115: note:   candidate expects 2 arguments, 1 provided
   86 |     return max({max(c2.begin(), c2.end()), components[0] + components[1] + L, components[1] + components[2] + 2*L});
      |                                                                                                                   ^
In file included from /usr/include/c++/9/bits/specfun.h:45,
                 from /usr/include/c++/9/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:41,
                 from dreaming.cpp:2:
/usr/include/c++/9/bits/stl_algobase.h:268:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  268 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/9/bits/stl_algobase.h:268:5: note:   template argument deduction/substitution failed:
dreaming.cpp:86:115: note:   candidate expects 3 arguments, 1 provided
   86 |     return max({max(c2.begin(), c2.end()), components[0] + components[1] + L, components[1] + components[2] + 2*L});
      |                                                                                                                   ^
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from dreaming.cpp:2:
/usr/include/c++/9/bits/stl_algo.h:3456:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3456 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/9/bits/stl_algo.h:3456:5: note:   template argument deduction/substitution failed:
dreaming.cpp:86:115: note:   deduced conflicting types for parameter '_Tp' ('__gnu_cxx::__normal_iterator<int*, std::vector<int> >' and 'int')
   86 |     return max({max(c2.begin(), c2.end()), components[0] + components[1] + L, components[1] + components[2] + 2*L});
      |                                                                                                                   ^
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from dreaming.cpp:2:
/usr/include/c++/9/bits/stl_algo.h:3462:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3462 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/9/bits/stl_algo.h:3462:5: note:   template argument deduction/substitution failed:
dreaming.cpp:86:115: note:   deduced conflicting types for parameter '_Tp' ('__gnu_cxx::__normal_iterator<int*, std::vector<int> >' and 'int')
   86 |     return max({max(c2.begin(), c2.end()), components[0] + components[1] + L, components[1] + components[2] + 2*L});
      |                                                                                                                   ^