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;
      |                ^