# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
976536 | 2024-05-06T16:34:15 Z | marinaluca | 악어의 지하 도시 (IOI11_crocodile) | C++17 | 컴파일 오류 |
0 ms | 0 KB |
#include <bits/stdc++.h> #include "crocodile.h" using namespace std; int travel_plan(int N, int M, int R[][2], int L[], int k, int P[]){ vector <vector<pair<int, int>>> ans(N); for (int i = 0; i < M; ++ i){ int a = R[i][0], b = R[i][1]; ans[a].emplace_back(b, L[i]); ans[b].emplace_back(a, L[i]); } vector <int> v(N); priority_queue<pair<int, int>> pq(N); for (int i = 0; i < k; ++ i){ v[P[i]] ++; pq.emplace(0, P[i]); } while (!pq.empty()){ auto [x, y] = pq.top(); pq.pop(); if (v[y] ++ == 1){ if (y == 0) return -x; for (auto &[xx, yy] : ans[y]){ pq.emplace(x - yy, xx); } } } }
Compilation message
crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)': crocodile.cpp:13:40: error: no matching function for call to 'std::priority_queue<std::pair<int, int> >::priority_queue(int&)' 13 | priority_queue<pair<int, int>> pq(N); | ^ In file included from /usr/include/c++/10/queue:64, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86, from crocodile.cpp:1: /usr/include/c++/10/bits/stl_queue.h:597:2: note: candidate: 'template<class _InputIterator> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(_InputIterator, _InputIterator, const _Compare&, _Sequence&&) [with _InputIterator = _InputIterator; _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 597 | priority_queue(_InputIterator __first, _InputIterator __last, | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:597:2: note: template argument deduction/substitution failed: crocodile.cpp:13:40: note: candidate expects 4 arguments, 1 provided 13 | priority_queue<pair<int, int>> pq(N); | ^ In file included from /usr/include/c++/10/queue:64, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86, from crocodile.cpp:1: /usr/include/c++/10/bits/stl_queue.h:586:2: note: candidate: 'template<class _InputIterator> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(_InputIterator, _InputIterator, const _Compare&, const _Sequence&) [with _InputIterator = _InputIterator; _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 586 | priority_queue(_InputIterator __first, _InputIterator __last, | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:586:2: note: template argument deduction/substitution failed: crocodile.cpp:13:40: note: candidate expects 4 arguments, 1 provided 13 | priority_queue<pair<int, int>> pq(N); | ^ In file included from /usr/include/c++/10/queue:64, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86, from crocodile.cpp:1: /usr/include/c++/10/bits/stl_queue.h:554:2: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(std::priority_queue<_Tp, _Sequence, _Compare>&&, const _Alloc&) [with _Alloc = _Alloc; _Requires = _Requires; _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 554 | priority_queue(priority_queue&& __q, const _Alloc& __a) | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:554:2: note: template argument deduction/substitution failed: crocodile.cpp:13:40: note: candidate expects 2 arguments, 1 provided 13 | priority_queue<pair<int, int>> pq(N); | ^ In file included from /usr/include/c++/10/queue:64, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86, from crocodile.cpp:1: /usr/include/c++/10/bits/stl_queue.h:550:2: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const std::priority_queue<_Tp, _Sequence, _Compare>&, const _Alloc&) [with _Alloc = _Alloc; _Requires = _Requires; _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 550 | priority_queue(const priority_queue& __q, const _Alloc& __a) | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:550:2: note: template argument deduction/substitution failed: crocodile.cpp:13:40: note: candidate expects 2 arguments, 1 provided 13 | priority_queue<pair<int, int>> pq(N); | ^ In file included from /usr/include/c++/10/queue:64, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86, from crocodile.cpp:1: /usr/include/c++/10/bits/stl_queue.h:545:2: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, _Sequence&&, const _Alloc&) [with _Alloc = _Alloc; _Requires = _Requires; _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 545 | priority_queue(const _Compare& __x, _Sequence&& __c, const _Alloc& __a) | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:545:2: note: template argument deduction/substitution failed: crocodile.cpp:13:40: note: candidate expects 3 arguments, 1 provided 13 | priority_queue<pair<int, int>> pq(N); | ^ In file included from /usr/include/c++/10/queue:64, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86, from crocodile.cpp:1: /usr/include/c++/10/bits/stl_queue.h:539:2: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, const _Sequence&, const _Alloc&) [with _Alloc = _Alloc; _Requires = _Requires; _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 539 | priority_queue(const _Compare& __x, const _Sequence& __c, | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:539:2: note: template argument deduction/substitution failed: crocodile.cpp:13:40: note: candidate expects 3 arguments, 1 provided 13 | priority_queue<pair<int, int>> pq(N); | ^ In file included from /usr/include/c++/10/queue:64, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86, from crocodile.cpp:1: /usr/include/c++/10/bits/stl_queue.h:533:2: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, const _Alloc&) [with _Alloc = _Alloc; _Requires = _Requires; _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 533 | priority_queue(const _Compare& __x, const _Alloc& __a) | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:533:2: note: template argument deduction/substitution failed: crocodile.cpp:13:40: note: candidate expects 2 arguments, 1 provided 13 | priority_queue<pair<int, int>> pq(N); | ^ In file included from /usr/include/c++/10/queue:64, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86, from crocodile.cpp:1: /usr/include/c++/10/bits/stl_queue.h:529:2: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Alloc&) [with _Alloc = _Alloc; _Requires = _Requires; _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 529 | priority_queue(const _Alloc& __a) | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:529:2: note: template argument deduction/substitution failed: /usr/include/c++/10/bits/stl_queue.h: In substitution of 'template<class _Tp, class _Sequence, class _Compare> template<class _Alloc> using _Uses = typename std::enable_if<std::uses_allocator<_Sequence, _Alloc>::value>::type [with _Alloc = int; _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]': /usr/include/c++/10/bits/stl_queue.h:527:33: required from here /usr/include/c++/10/bits/stl_queue.h:473:8: error: no type named 'type' in 'struct std::enable_if<false, void>' 473 | using _Uses = typename | ^~~~~ /usr/include/c++/10/bits/stl_queue.h:523:7: note: candidate: 'std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, _Sequence&&) [with _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 523 | priority_queue(const _Compare& __x, _Sequence&& __s = _Sequence()) | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:523:38: note: no known conversion for argument 1 from 'int' to 'const std::less<std::pair<int, int> >&' 523 | priority_queue(const _Compare& __x, _Sequence&& __s = _Sequence()) | ~~~~~~~~~~~~~~~~^~~ /usr/include/c++/10/bits/stl_queue.h:518:7: note: candidate: 'std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, const _Sequence&) [with _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 518 | priority_queue(const _Compare& __x, const _Sequence& __s) | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:518:7: note: candidate expects 2 arguments, 1 provided /usr/include/c++/10/bits/stl_queue.h:514:2: note: candidate: 'template<class _Seq, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue() [with _Seq = _Seq; _Requires = _Requires; _Tp = std::pair<int, int>; _Sequence = std::vector<std::pair<int, int> >; _Compare = std::less<std::pair<int, int> >]' 514 | priority_queue() | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:514:2: note: template argument deduction/substitution failed: crocodile.cpp:13:40: note: candidate expects 0 arguments, 1 provided 13 | priority_queue<pair<int, int>> pq(N); | ^ In file included from /usr/include/c++/10/queue:64, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:86, from crocodile.cpp:1: /usr/include/c++/10/bits/stl_queue.h:456:11: note: candidate: 'std::priority_queue<std::pair<int, int> >::priority_queue(const std::priority_queue<std::pair<int, int> >&)' 456 | class priority_queue | ^~~~~~~~~~~~~~ /usr/include/c++/10/bits/stl_queue.h:456:11: note: no known conversion for argument 1 from 'int' to 'const std::priority_queue<std::pair<int, int> >&' /usr/include/c++/10/bits/stl_queue.h:456:11: note: candidate: 'std::priority_queue<std::pair<int, int> >::priority_queue(std::priority_queue<std::pair<int, int> >&&)' /usr/include/c++/10/bits/stl_queue.h:456:11: note: no known conversion for argument 1 from 'int' to 'std::priority_queue<std::pair<int, int> >&&' crocodile.cpp:6:42: warning: control reaches end of non-void function [-Wreturn-type] 6 | vector <vector<pair<int, int>>> ans(N); | ^