제출 #1265308

#제출 시각아이디문제언어결과실행 시간메모리
1265308scalifrastico_098전선 연결 (IOI17_wiring)C++20
컴파일 에러
0 ms0 KiB
#include "wiring.h" #include <bits/stdc++.h> using namespace std; long long min_total_length(vector<long long> r, vector<int> b) { long long n=r.size(), m=b.size(); vector<vector<long long>> dp(n, vector<long long> (n, INT_MAX)); dp[0][n+m]=0; vector<pair<long long, pair<char, long long>> op; op.reserve(n+m); for(auto x:r){op.push_back({x, {'R', INT_MAX}});} for(auto x:b){op.push_back({x, {'B', INT_MAX}});} sort(op.begin(), op.end()); for(long long i=0; i<n+m; i++) { for(long long u=0; u<=n+m; u++) { if(dp[i][u]>=INT_MAX) continue; for(long long j=0; j<i; j++) { if(op[j].second.first==op[i].second.first) continue; f(u!=n+m&&j==u) continue; long long co=abs(op[i].first-op[j].first); dp[i+1][u]=min(dp[i+1][u], co+dp[i][u]); } if(u==n+m){dp[i+1]=min(dp[i+1], dp[i][u]);} else { if(op[u].second.first!=op[i].second.first) { long long co=abs(op[u].first-op[i].first); dp[i+1][n+m]=min(dp[i+1][m+n], dp[i][u]+co); } } } } return dp[n+m][n+m]; }

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

wiring.cpp: In function 'long long int min_total_length(std::vector<long long int>, std::vector<int>)':
wiring.cpp:6:55: error: template argument 1 is invalid
    6 |         vector<pair<long long, pair<char, long long>> op; op.reserve(n+m);
      |                                                       ^~
wiring.cpp:6:55: error: template argument 2 is invalid
wiring.cpp:6:59: error: 'op' was not declared in this scope; did you mean 'dp'?
    6 |         vector<pair<long long, pair<char, long long>> op; op.reserve(n+m);
      |                                                           ^~
      |                                                           dp
wiring.cpp:18:33: error: 'f' was not declared in this scope
   18 |                                 f(u!=n+m&&j==u) continue;
      |                                 ^
wiring.cpp:21:47: error: no matching function for call to 'min(__gnu_cxx::__alloc_traits<std::allocator<std::vector<long long int> >, std::vector<long long int> >::value_type&, __gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type&)'
   21 |                         if(u==n+m){dp[i+1]=min(dp[i+1], dp[i][u]);}
      |                                            ~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from wiring.h:1,
                 from wiring.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
wiring.cpp:21:47: note:   deduced conflicting types for parameter 'const _Tp' ('std::vector<long long int>' and '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'})
   21 |                         if(u==n+m){dp[i+1]=min(dp[i+1], dp[i][u]);}
      |                                            ~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from wiring.h:1,
                 from wiring.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
wiring.cpp:21:47: note:   deduced conflicting types for parameter 'const _Tp' ('std::vector<long long int>' and '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'})
   21 |                         if(u==n+m){dp[i+1]=min(dp[i+1], dp[i][u]);}
      |                                            ~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from wiring.h:1,
                 from wiring.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3449:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3449 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3449:5: note:   template argument deduction/substitution failed:
wiring.cpp:21:47: note:   'std::vector<long long int>' is not derived from 'std::initializer_list<_Tp>'
   21 |                         if(u==n+m){dp[i+1]=min(dp[i+1], dp[i][u]);}
      |                                            ~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from wiring.h:1,
                 from wiring.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3455:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3455 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3455:5: note:   template argument deduction/substitution failed:
wiring.cpp:21:47: note:   'std::vector<long long int>' is not derived from 'std::initializer_list<_Tp>'
   21 |                         if(u==n+m){dp[i+1]=min(dp[i+1], dp[i][u]);}
      |                                            ~~~^~~~~~~~~~~~~~~~~~~