제출 #349908

#제출 시각아이디문제언어결과실행 시간메모리
349908PetyRace (IOI11_race)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #include "race.h" using namespace std; const int N = 2e5 + 2; vector<pair<int, long long> >G[N]; set<pair<long long, int> > s[N]; long long dist[N], edge[N], k; int ans; ///a + b - 2 * dist void dfs (int nod, int p) { s[nod].insert({dist[nod], edge[nod]}); for (auto it : G[nod]) { if (it.first == p) continue; dist[it.first] = dist[nod] + it.second; edge[it.first] = edge[nod] + 1; dfs(it.first, nod); if (s[nod].size() < s[it.first].size()) swap(s[nod], s[it.first]); for (auto it2 : s[it.first]) { auto meh = s[nod].lower_bound({k - it2.first + 2 * dist[nod], 0}); if (meh->first + it2.first -2 * dist[nod] == k) { ans = min(ans, it2.second + (*meh).second - 2 * edge[nod]); } } for (auto it2 : s[it.first]) s[nod].insert(it2); } } int best_path (int n, int K, int h[][2], int l[]) { for (int i = 0; i < n - 1; i++) { G[h[i][0]].push_back({h[i][1], l[i]}); G[h[i][1]].push_back({h[i][0], l[i]}); } k = K; ans = n; dfs(0, -1); return ans; }

컴파일 시 표준 에러 (stderr) 메시지

race.cpp: In function 'void dfs(int, int)':
race.cpp:28:66: error: no matching function for call to 'min(int&, long long int)'
   28 |         ans = min(ans, it2.second + (*meh).second - 2 * edge[nod]);
      |                                                                  ^
In file included from /usr/include/c++/9/bits/char_traits.h:39,
                 from /usr/include/c++/9/ios:40,
                 from /usr/include/c++/9/istream:38,
                 from /usr/include/c++/9/sstream:38,
                 from /usr/include/c++/9/complex:45,
                 from /usr/include/c++/9/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
                 from race.cpp:1:
/usr/include/c++/9/bits/stl_algobase.h:198:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  198 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/9/bits/stl_algobase.h:198:5: note:   template argument deduction/substitution failed:
race.cpp:28:66: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   28 |         ans = min(ans, it2.second + (*meh).second - 2 * edge[nod]);
      |                                                                  ^
In file included from /usr/include/c++/9/bits/char_traits.h:39,
                 from /usr/include/c++/9/ios:40,
                 from /usr/include/c++/9/istream:38,
                 from /usr/include/c++/9/sstream:38,
                 from /usr/include/c++/9/complex:45,
                 from /usr/include/c++/9/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
                 from race.cpp:1:
/usr/include/c++/9/bits/stl_algobase.h:246:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  246 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/9/bits/stl_algobase.h:246:5: note:   template argument deduction/substitution failed:
race.cpp:28:66: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   28 |         ans = min(ans, it2.second + (*meh).second - 2 * edge[nod]);
      |                                                                  ^
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from race.cpp:1:
/usr/include/c++/9/bits/stl_algo.h:3444:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3444 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/9/bits/stl_algo.h:3444:5: note:   template argument deduction/substitution failed:
race.cpp:28:66: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   28 |         ans = min(ans, it2.second + (*meh).second - 2 * edge[nod]);
      |                                                                  ^
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from race.cpp:1:
/usr/include/c++/9/bits/stl_algo.h:3450:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3450 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/9/bits/stl_algo.h:3450:5: note:   template argument deduction/substitution failed:
race.cpp:28:66: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   28 |         ans = min(ans, it2.second + (*meh).second - 2 * edge[nod]);
      |                                                                  ^