Language: C++

#include<bits/stdc++.h>
using namespace std;
const int MAXQ = 1e7 + 5;
const int MAXN = 1e3 + 5;
const int MAXP = 5e3 + 5;
const int INF = 1e9;
const long long INFLL = 1e18;
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
template < typename T > void chkmax( T& x, T y ) { x = max( x, y ); }
template < typename T > void chkmin( T& x, T y ) { x = min( x, y ); }
template < typename T > void read( T& x )
{
    x = 0;
    int f = 1;
    char c = getchar();
    for ( ; !isdigit( c ); c = getchar() ) if ( c == '-' ) f = -f;
    for ( ; isdigit( c ); c = getchar() ) x = x * 10 + c - '0';
    x *= f;
}
template < typename T > void write( T x )
{
    if ( x < 0 ) x = -x, putchar( '-' );
    if ( x > 9 ) write( x / 10 );
    putchar( x % 10 + '0' );
}
template < typename T > void writeln( T x )
{
    write( x );
    puts( "" );
}
struct edge { int dest, flow, pos, cost; };
vector<edge> a[MAXP];
int s, t, tot, flow;
ll cost;
ll dist[MAXP];
int path[MAXP], home[MAXP];
void FlowPath()
{
    int p = t, ans = INF;
    while ( p != s ) {
        ans = min( ans, a[path[p]][home[p]].flow );
        p = path[p];
    }
    flow += ans;
    cost += ans * dist[t];
    p = t;
    while ( p != s ) {
        a[path[p]][home[p]].flow -= ans;
        a[p][a[path[p]][home[p]].pos].flow += ans;
        p = path[p];
    }
}
bool spfa()
{
    static int q[MAXQ];
    static bool inq[MAXP];
    static int l = 0, r = 0;
    for ( int i = 0; i <= r; i++ )
        dist[q[i]] = -INFLL;
    dist[t] = INFLL;
    q[l = r = 0] = s, dist[s] = 0, inq[s] = true;
    while ( l <= r ) {
        int tmp = q[l];
        for ( unsigned i = 0; i < a[tmp].size(); i++ )
            if ( a[tmp][i].flow != 0 && dist[tmp] + a[tmp][i].cost > dist[a[tmp][i].dest] ) {
                dist[a[tmp][i].dest] = dist[tmp] + a[tmp][i].cost;
                path[a[tmp][i].dest] = tmp;
                home[a[tmp][i].dest] = i;
                if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
                    q[++r] = a[tmp][i].dest;
                    inq[q[r]] = true;
                }
            }
        l++, inq[tmp] = false;
    }
    return dist[t] != -INFLL;
}
void addedge( int x, int y, int z, int c )
{
    a[x].push_back( (edge) {y, z, a[y].size(), c} );
    a[y].push_back( (edge) {x, 0, a[x].size() - 1, -c} );
}
int n, mid[4], cntx[MAXN], cnty[MAXN];
pair<int, int> posx[MAXN], posy[MAXN];
int main()
{
    read( n ), tot = 2 * n;
    s = ++tot, t = ++tot;
    for ( int i = 0; i <= 3; i++ )
        mid[i] = ++tot;
    for ( int i = 1; i <= n; i++ ) {
        read( posx[i].first ), read( posx[i].second ), read( cntx[i] );
        addedge( s, i, cntx[i], 0 );
        addedge( i, mid[0], INF, -posx[i].first - posx[i].second );
        addedge( i, mid[1], INF, posx[i].first - posx[i].second );
        addedge( i, mid[2], INF, -posx[i].first + posx[i].second );
        addedge( i, mid[3], INF, posx[i].first + posx[i].second );
    }
    for ( int i = 1; i <= n; i++ ) {
        read( posy[i].first ), read( posy[i].second ), read( cnty[i] );
        addedge( n + i, t, cnty[i], 0 );
        addedge( mid[0], n + i, INF, posy[i].first + posy[i].second );
        addedge( mid[1], n + i, INF, -posy[i].first + posy[i].second );
        addedge( mid[2], n + i, INF, posy[i].first - posy[i].second );
        addedge( mid[3], n + i, INF, -posy[i].first - posy[i].second );
    }
    for ( int i = 1; i <= tot; i++ )
        dist[i] = -INFLL;
    while ( spfa() ) FlowPath();
    writeln( cost );
    return 0;
}


Compiler output:
a.cc: In function 'bool spfa()':
a.cc:71:56: error: no match for 'operator!=' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} and 'int')
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
In file included from /usr/include/c++/14/regex:68,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:181,
                 from a.cc:1:
/usr/include/c++/14/bits/regex.h:1132:5: note: candidate: 'template<class _BiIter> bool std::__cxx11::operator!=(const sub_match<_BiIter>&, const sub_match<_BiIter>&)'
 1132 |     operator!=(const sub_match<_BiIter>& __lhs, const sub_match<_BiIter>& __rhs)
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1132:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
/usr/include/c++/14/bits/regex.h:1212:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator!=(__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&, const sub_match<_BiIter>&)'
 1212 |     operator!=(const __sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1212:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
/usr/include/c++/14/bits/regex.h:1305:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator!=(const sub_match<_BiIter>&, __sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&)'
 1305 |     operator!=(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1305:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
/usr/include/c++/14/bits/regex.h:1379:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const typename std::iterator_traits<_Iter>::value_type*, const sub_match<_BiIter>&)'
 1379 |     operator!=(typename iterator_traits<_Bi_iter>::value_type const* __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1379:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
/usr/include/c++/14/bits/regex.h:1473:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type*)'
 1473 |     operator!=(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1473:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
/usr/include/c++/14/bits/regex.h:1547:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const typename std::iterator_traits<_Iter>::value_type&, const sub_match<_BiIter>&)'
 1547 |     operator!=(typename iterator_traits<_Bi_iter>::value_type const& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1547:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
/usr/include/c++/14/bits/regex.h:1647:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type&)'
 1647 |     operator!=(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1647:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
/usr/include/c++/14/bits/regex.h:2213:5: note: candidate: 'template<class _Bi_iter, class _Alloc> bool std::__cxx11::operator!=(const match_results<_BiIter, _Alloc>&, const match_results<_BiIter, _Alloc>&)'
 2213 |     operator!=(const match_results<_Bi_iter, _Alloc>& __m1,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:2213:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'const std::__cxx11::match_results<_BiIter, _Alloc>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
In file included from /usr/include/c++/14/bits/stl_algobase.h:64,
                 from /usr/include/c++/14/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:51:
/usr/include/c++/14/bits/stl_pair.h:1052:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator!=(const pair<_T1, _T2>&, const pair<_T1, _T2>&)'
 1052 |     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_pair.h:1052:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'const std::pair<_T1, _T2>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
In file included from /usr/include/c++/14/bits/stl_algobase.h:67:
/usr/include/c++/14/bits/stl_iterator.h:455:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const reverse_iterator<_Iterator>&, const reverse_iterator<_Iterator>&)'
  455 |     operator!=(const reverse_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:455:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'const std::reverse_iterator<_Iterator>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
/usr/include/c++/14/bits/stl_iterator.h:500:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const reverse_iterator<_Iterator>&, const reverse_iterator<_IteratorR>&)'
  500 |     operator!=(const reverse_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:500:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'const std::reverse_iterator<_Iterator>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
/usr/include/c++/14/bits/stl_iterator.h:1686:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const move_iterator<_IteratorL>&, const move_iterator<_IteratorR>&)'
 1686 |     operator!=(const move_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1686:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'const std::move_iterator<_IteratorL>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
/usr/include/c++/14/bits/stl_iterator.h:1753:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const move_iterator<_IteratorL>&, const move_iterator<_IteratorL>&)'
 1753 |     operator!=(const move_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1753:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::allocator<edge>, edge>::value_type' {aka 'edge'} is not derived from 'const std::move_iterator<_IteratorL>'
   71 |                 if ( !inq[a[tmp][i].dest] && a[tmp][i] != t ) {
      |                                                           ^
In file included from /usr/include/c++/14/bits/char_traits.h:42,
                 from /usr/include/c++/14/string:42,
                 from /usr/include/c++/14/bitset:52,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:52:
/usr/include/c++/14/bits/postypes.h:197:5: note: candidate: 'template<class _StateT> bool std::operator!=(const fpos<_StateT>&, const fpos<_StateT>&)'
  197 |     operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
      |     ^~~~~~~~
/usr/include/c++/14/bits/postypes.h:197:5: note:   template argument deduction/substitution failed:
a.cc:71:59: note:   '__gnu_cxx::__alloc_traits<std::a