Language: C++


//(・ω・)
#include <stdio.h>
#include <iostream> // cout, endl, cin
#include <string> // string, to_string, atoi
#include <vector> // vector
#include <algorithm> // min, max, swap, sort, reverse, lower_bound, upper_bound
#include <utility> // pair, make_pair
#include <tuple> // tuple, make_tuple
#include <cstdint> // int64_t, int*_t
#include <cstdio> // printf
#include <map> // map
#include <queue> // queue, priority_queue
#include <set> // set
#include <stack> // stack
#include <deque> // deque
#include <unordered_map> // unordered_map
#include <unordered_set> // unordered_set
#include <bitset> // bitset
#include <cctype> // isupper, islower, isdigit, toupper, tolower
#include <math.h>
#include <iomanip> //setprecision
#include <limits>
#include <sstream> //istringstream
#include <stdlib.h>
#include <list>
#include <iterator>//std::advance()
using namespace std;
int main(){
    int H, W, m;
    cin >> H >> W >> m;
    vector<int> h(m);
    vector<int> w(m);
    vector<pair<int,int>> b(m);
    for(int i=0; i<m; i++){
        cin >> h[i] >> w[i];
        b[i]=make_pair(h[i],w[i]);
    }
    sort(h.begin(),h.end());
    sort(w.begin(),w.end());
    vector<pair<int,int>> hcount;
    vector<pair<int,int>> wcount;
    int wc=1,hc=1;
    for(int i=0; i<m-1; i++){
        if(w[i]==w[i+1]) wc++;
        else{
            wcount.push_back(make_pair(wc,w[i]));
            wc=1;
        }
        if(h[i]==h[i+1]) hc++;
        else{
            hcount.push_back(make_pair(hc,h[i]));
            hc=1;
        }
    }
    wcount.push_back(make_pair(wc,w[m-1]));
    hcount.push_back(make_pair(hc,h[m-1]));
    sort(hcount.begin(),hcount.end(),greater<pair<long long ,long long >>());
    sort(wcount.begin(),wcount.end(),greater<pair<long long ,long long >>());
    int I=hcount[0].first,max=hcount[0].first+wcount[0].first-b[hcount[0].second][wcount[0].second];
    for(auto& i:hcount){
        if(I>i.first) break;
        int J=wcount[0].first;
        for(auto& j:wcount){
            if(J>j.first) break;
            int x;
            x=i.first+j.first;
            for(auto& k:b){
                if(b==make_pair(i.second,j.second)){
                    x--;
                    break;
                }
            }
            if(x>max) max=x;
            else if(max-x>=1) break;
            J=j.first;
        }
    }
    cout << max << endl;
}


Compiler output:
a.cc: In function 'int main()':
a.cc:60:82: error: no match for 'operator[]' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} and 'int')
   60 |     int I=hcount[0].first,max=hcount[0].first+wcount[0].first-b[hcount[0].second][wcount[0].second];
      |                                                                                  ^
a.cc:69:21: error: no match for 'operator==' (operand types are 'std::vector<std::pair<int, int> >' and 'std::pair<int, int>')
   69 |                 if(b==make_pair(i.second,j.second)){
      |                    ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                    |           |
      |                    |           std::pair<int, int>
      |                    std::vector<std::pair<int, int> >
In file included from /usr/include/c++/14/iosfwd:42,
                 from /usr/include/c++/14/ios:40,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:4:
/usr/include/c++/14/bits/postypes.h:192:5: note: candidate: 'template<class _StateT> bool std::operator==(const fpos<_StateT>&, const fpos<_StateT>&)'
  192 |     operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
      |     ^~~~~~~~
/usr/include/c++/14/bits/postypes.h:192:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'const std::fpos<_StateT>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
In file included from /usr/include/c++/14/string:43,
                 from /usr/include/c++/14/bits/locale_classes.h:40,
                 from /usr/include/c++/14/bits/ios_base.h:41,
                 from /usr/include/c++/14/ios:44:
/usr/include/c++/14/bits/allocator.h:235:5: note: candidate: 'template<class _T1, class _T2> bool std::operator==(const allocator<_CharT>&, const allocator<_T2>&)'
  235 |     operator==(const allocator<_T1>&, const allocator<_T2>&)
      |     ^~~~~~~~
/usr/include/c++/14/bits/allocator.h:235:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'const std::allocator<_CharT>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
In file included from /usr/include/c++/14/string:48:
/usr/include/c++/14/bits/stl_iterator.h:441:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator==(const reverse_iterator<_Iterator>&, const reverse_iterator<_Iterator>&)'
  441 |     operator==(const reverse_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:441:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'const std::reverse_iterator<_Iterator>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
/usr/include/c++/14/bits/stl_iterator.h:486:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator==(const reverse_iterator<_Iterator>&, const reverse_iterator<_IteratorR>&)'
  486 |     operator==(const reverse_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:486:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'const std::reverse_iterator<_Iterator>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
/usr/include/c++/14/bits/stl_iterator.h:1667:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator==(const move_iterator<_IteratorL>&, const move_iterator<_IteratorR>&)'
 1667 |     operator==(const move_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1667:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'const std::move_iterator<_IteratorL>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
/usr/include/c++/14/bits/stl_iterator.h:1737:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator==(const move_iterator<_IteratorL>&, const move_iterator<_IteratorL>&)'
 1737 |     operator==(const move_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1737:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'const std::move_iterator<_IteratorL>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
In file included from /usr/include/c++/14/bits/stl_algobase.h:64,
                 from /usr/include/c++/14/string:51:
/usr/include/c++/14/bits/stl_pair.h:1033:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator==(const pair<_T1, _T2>&, const pair<_T1, _T2>&)'
 1033 |     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_pair.h:1033:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'const std::pair<_T1, _T2>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
In file included from /usr/include/c++/14/bits/basic_string.h:47,
                 from /usr/include/c++/14/string:54:
/usr/include/c++/14/string_view:629:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator==(basic_string_view<_CharT, _Traits>, __type_identity_t<basic_string_view<_CharT, _Traits> >)'
  629 |     operator==(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:629:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
/usr/include/c++/14/string_view:637:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator==(basic_string_view<_CharT, _Traits>, basic_string_view<_CharT, _Traits>)'
  637 |     operator==(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:637:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
/usr/include/c++/14/string_view:644:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator==(__type_identity_t<basic_string_view<_CharT, _Traits> >, basic_string_view<_CharT, _Traits>)'
  644 |     operator==(__type_identity_t<basic_string_view<_CharT, _Traits>> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:644:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::pair<int, int>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
/usr/include/c++/14/bits/basic_string.h:3755:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3755 |     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.h:3755:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
/usr/include/c++/14/bits/basic_string.h:3772:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)'
 3772 |     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.h:3772:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   'std::vector<std::pair<int, int> >' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
/usr/include/c++/14/bits/basic_string.h:3819:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const _CharT*, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3819 |     operator==(const _CharT* __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.h:3819:5: note:   template argument deduction/substitution failed:
a.cc:69:50: note:   mismatched types 'const _CharT*' and 'std::vector<std::pair<int, int> >'
   69 |                 if(b==make_pair(i.second,j.second)){
      |                                                  ^
In file included from /usr/include/c++/14/bits/memory_resource.h:47,
                 from /usr/include/c++/14/string:68:
/usr/include/c++/14/tuple:2558:5: note: candidate: 'template<class ... _TElements, class ... _UElements> constexpr bool std::operator==(const tuple<_UTypes ...>&, const tuple<_Elements ...>&)'
 2558 |     operator==(const tuple<_TElements...>& __t,
      |     ^~~~~~~~
/usr/include/c++/14/tuple:2558:5: note:   template argument deduction/substitution failed:
a.cc: