Submission #73328819
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main(void){
ll H, W, N;
cin >> H >> W >> N;
vector<pair<ll, ll>> B(N);
multimap<ll, ll> Hs;
multimap<ll, ll> Ws;
for(int i = 0; i < N; i++) {
ll h, w;
cin >> h >> w;
B.at(i) = make_pair(h, w);
Hs.insert({h, i});
Ws.insert({w, i});
}
vector<pair<ll, ll>> ans(N);
vector<bool> seen(N, false);
while(H > 0 || W > 0) {
if(*(Hs.rbegin()).first == H) {
ll h = *(Hs.rbegin()).first;
ll idx = *(Hs.rbegin()).second;
if(!seen.at(idx) {
ans.at(idx) = true;
ans.at(idx) = B.at(idx);
}
Hs.erase(Hs.rbegin());
}else {
ll w = *(Ws.rbegin()).first;
ll idx = *(ws.rbegin()).second;
if(!seen.at(idx) {
ans.at(idx) = true;
ans.at(idx) = B.at(idx);
}
Ws.erase(Ws.rbegin());
}
break;
}
for(auto x : ans) {
cout << x.first << " " << x.second << endl;
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Reconstruct Chocolate |
| User | kashihal |
| Language | C++23 (GCC 15.2.0) |
| Score | 0 |
| Code Size | 1248 Byte |
| Status | CE |
Compile Error
./Main.cpp: In function 'int main()':
./Main.cpp:23:27: error: 'std::multimap<long long int, long long int>::reverse_iterator' {aka 'class std::reverse_iterator<std::_Rb_tree_iterator<std::pair<const long long int, long long int> > >'} has no member named 'first'
23 | if(*(Hs.rbegin()).first == H) {
| ^~~~~
./Main.cpp:24:35: error: 'std::multimap<long long int, long long int>::reverse_iterator' {aka 'class std::reverse_iterator<std::_Rb_tree_iterator<std::pair<const long long int, long long int> > >'} has no member named 'first'
24 | ll h = *(Hs.rbegin()).first;
| ^~~~~
./Main.cpp:25:37: error: 'std::multimap<long long int, long long int>::reverse_iterator' {aka 'class std::reverse_iterator<std::_Rb_tree_iterator<std::pair<const long long int, long long int> > >'} has no member named 'second'
25 | ll idx = *(Hs.rbegin()).second;
| ^~~~~~
./Main.cpp:27:29: error: expected ';' before '{' token
27 | if(!seen.at(idx) {
| ^~
| ;
./Main.cpp:27:16: warning: value computed is not used [-Wunused-value]
27 | if(!seen.at(idx) {
| ^~~~~~~~~~~~~
./Main.cpp:31:21: error: no matching function for call to 'std::multimap<long long int, long long int>::erase(std::multimap<long long int, long long int>::reverse_iterator)'
31 | Hs.erase(Hs.rbegin());
| ~~~~~~~~^~~~~~~~~~~~~
./Main.cpp:31:21: note: there are 4 candidates
In file included from /opt/atcoder/gcc/include/c++/15.2.0/map:66,
from /opt/atcoder/gcc/include/c++/15.2.0/x86_64-pc-linux-gnu/bits/stdc++.h:155,
from ./Main.cpp:1:
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:750:7: note: candidate 1: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(const_iterator) [with _Key = long long int; _Tp = long long int; _Compare = std::less<long long int>; _Alloc = std::allocator<std::pair<const long long int, long long int> >; iterator = std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::iterator; const_iterator = std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::const_iterator]'
750 | erase(const_iterator __position)
| ^~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:750:28: note: no known conversion for argument 1 from 'std::multimap<long long int, long long int>::reverse_iterator' {aka 'std::reverse_iterator<std::_Rb_tree_iterator<std::pair<const long long int, long long int> > >'} to 'std::multimap<long long int, long long int>::const_iterator' {aka 'std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::const_iterator'}
750 | erase(const_iterator __position)
| ~~~~~~~~~~~~~~~^~~~~~~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:756:7: note: candidate 2: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(iterator) [with _Key = long long int; _Tp = long long int; _Compare = std::less<long long int>; _Alloc = std::allocator<std::pair<const long long int, long long int> >; iterator = std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::iterator]'
756 | erase(iterator __position)
| ^~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:756:22: note: no known conversion for argument 1 from 'std::multimap<long long int, long long int>::reverse_iterator' {aka 'std::reverse_iterator<std::_Rb_tree_iterator<std::pair<const long long int, long long int> > >'} to 'std::multimap<long long int, long long int>::iterator' {aka 'std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::iterator'}
756 | erase(iterator __position)
| ~~~~~~~~~^~~~~~~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:787:7: note: candidate 3: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::size_type std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(const key_type&) [with _Key = long long int; _Tp = long long int; _Compare = std::less<long long int>; _Alloc = std::allocator<std::pair<const long long int, long long int> >; size_type = long unsigned int; key_type = long long int]'
787 | erase(const key_type& __x)
| ^~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:787:29: note: no known conversion for argument 1 from 'std::multimap<long long int, long long int>::reverse_iterator' {aka 'std::reverse_iterator<std::_Rb_tree_iterator<std::pair<const long long int, long long int> > >'} to 'const std::multimap<long long int, long long int>::key_type&' {aka 'const long long int&'}
787 | erase(const key_type& __x)
| ~~~~~~~~~~~~~~~~^~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:808:7: note: candidate 4: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(const_iterator, const_iterator) [with _Key = long long int; _Tp = long long int; _Compare = std::less<long long int>; _Alloc = std::allocator<std::pair<const long long int, long long int> >; iterator = std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::iterator; const_iterator = std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::const_iterator]'
808 | erase(const_iterator __first, const_iterator __last)
| ^~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:808:7: note: candidate expects 2 arguments, 1 provided
./Main.cpp:31:34: error: expected ')' before ';' token
31 | Hs.erase(Hs.rbegin());
| ^
| )
./Main.cpp:27:15: note: to match this '('
27 | if(!seen.at(idx) {
| ^
./Main.cpp:31:34: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
31 | Hs.erase(Hs.rbegin());
| ^
./Main.cpp:24:16: warning: unused variable 'h' [-Wunused-variable]
24 | ll h = *(Hs.rbegin()).first;
| ^
./Main.cpp:33:35: error: 'std::multimap<long long int, long long int>::reverse_iterator' {aka 'class std::reverse_iterator<std::_Rb_tree_iterator<std::pair<const long long int, long long int> > >'} has no member named 'first'
33 | ll w = *(Ws.rbegin()).first;
| ^~~~~
./Main.cpp:34:27: error: overloaded function with no contextual type information
34 | ll idx = *(ws.rbegin()).second;
| ^~~~~~
./Main.cpp:36:29: error: expected ';' before '{' token
36 | if(!seen.at(idx) {
| ^~
| ;
./Main.cpp:36:16: warning: value computed is not used [-Wunused-value]
36 | if(!seen.at(idx) {
| ^~~~~~~~~~~~~
./Main.cpp:40:21: error: no matching function for call to 'std::multimap<long long int, long long int>::erase(std::multimap<long long int, long long int>::reverse_iterator)'
40 | Ws.erase(Ws.rbegin());
| ~~~~~~~~^~~~~~~~~~~~~
./Main.cpp:40:21: note: there are 4 candidates
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:750:7: note: candidate 1: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(const_iterator) [with _Key = long long int; _Tp = long long int; _Compare = std::less<long long int>; _Alloc = std::allocator<std::pair<const long long int, long long int> >; iterator = std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::iterator; const_iterator = std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::const_iterator]'
750 | erase(const_iterator __position)
| ^~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:750:28: note: no known conversion for argument 1 from 'std::multimap<long long int, long long int>::reverse_iterator' {aka 'std::reverse_iterator<std::_Rb_tree_iterator<std::pair<const long long int, long long int> > >'} to 'std::multimap<long long int, long long int>::const_iterator' {aka 'std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::const_iterator'}
750 | erase(const_iterator __position)
| ~~~~~~~~~~~~~~~^~~~~~~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:756:7: note: candidate 2: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(iterator) [with _Key = long long int; _Tp = long long int; _Compare = std::less<long long int>; _Alloc = std::allocator<std::pair<const long long int, long long int> >; iterator = std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::iterator]'
756 | erase(iterator __position)
| ^~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:756:22: note: no known conversion for argument 1 from 'std::multimap<long long int, long long int>::reverse_iterator' {aka 'std::reverse_iterator<std::_Rb_tree_iterator<std::pair<const long long int, long long int> > >'} to 'std::multimap<long long int, long long int>::iterator' {aka 'std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::iterator'}
756 | erase(iterator __position)
| ~~~~~~~~~^~~~~~~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:787:7: note: candidate 3: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::size_type std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(const key_type&) [with _Key = long long int; _Tp = long long int; _Compare = std::less<long long int>; _Alloc = std::allocator<std::pair<const long long int, long long int> >; size_type = long unsigned int; key_type = long long int]'
787 | erase(const key_type& __x)
| ^~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:787:29: note: no known conversion for argument 1 from 'std::multimap<long long int, long long int>::reverse_iterator' {aka 'std::reverse_iterator<std::_Rb_tree_iterator<std::pair<const long long int, long long int> > >'} to 'const std::multimap<long long int, long long int>::key_type&' {aka 'const long long int&'}
787 | erase(const key_type& __x)
| ~~~~~~~~~~~~~~~~^~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:808:7: note: candidate 4: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::erase(const_iterator, const_iterator) [with _Key = long long int; _Tp = long long int; _Compare = std::less<long long int>; _Alloc = std::allocator<std::pair<const long long int, long long int> >; iterator = std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::iterator; const_iterator = std::_Rb_tree<long long int, std::pair<const long long int, long long int>, std::_Select1st<std::pair<const long long int, long long int> >, std::less<long long int>, std::allocator<std::pair<const long long int, long long int> > >::const_iterator]'
808 | erase(const_iterator __first, const_iterator __last)
| ^~~~~
/opt/atcoder/gcc/include/c++/15.2.0/bits/stl_multimap.h:808:7: note: candidate expects 2 arguments, 1 provided
./Main.cpp:40:34: error: expected ')' before ';' token
40 | Ws.erase(Ws.rbegin());
| ^
| )
./Main.cpp:36:15: note: to match this '('
36 | if(!seen.at(idx) {
| ^
./Main.cpp:40:34: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
40 | Ws.erase(Ws.rbegin());
| ^
./Main.cpp:33:16: warning: unused variable 'w' [-Wunused-variable]
33 | ll w = *(Ws.rbegin()).first;
| ^