Language: C++

#include <iostream>
#include <math.h>
#include <vector>

using namespace std;
 
bool DFSUtil(int, vector<bool>);
 
int main(){
  int R, C;
  cin >> R >> C;
  int N;
  cin >> N;
  vector<int, pair<int, int>> g;
  
  for(int i = 0; i < N; i++){
    int r, c, a;
    cin >> r >> c >> a;
    g[r].push_back(make_pair( c + C, a);
    g[c + C].push_back(make_pair(r, a));
  }
 
  vector<bool> visited(R + C, false);
  vector<int> node(R + C, 0);
  int minR, minC = pow(10,9);
  if(!DFSUtil(0, visited)){
    cout << "No";
  }
  else{
    cout >> "Yes";
  }
}
 
bool DFSUtil(int v, vector<bool> visited){
  visited[v] = true;
  for(int i = 0; i < g[v].size(); i++){
    int w = g[v][i]. first;
    int a = g[v][i].second;
    if(visited[w] && node[v] + node[w] != a){
      return false;
    }
    node[w] = a - node[v];
 
    if(v < R) minR = minR >node[v] ? node[v] : minR;
    if(v >= R) minC = minC>node[v] ? node[v] : minC;
    if(minR + minC < 0) return false;
    if(!visited[w]){
      if(!DFSUtil(w, visited)) return false;
    }
  }
  return true;
}


Compiler output:
In file included from /usr/include/c++/14/vector:66,
                 from a.cc:3:
/usr/include/c++/14/bits/stl_vector.h: In instantiation of 'struct std::_Vector_base<int, std::pair<int, int> >':
/usr/include/c++/14/bits/stl_vector.h:428:11:   required from 'class std::vector<int, std::pair<int, int> >'
  428 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
a.cc:14:31:   required from here
   14 |   vector<int, pair<int, int>> g;
      |                               ^
/usr/include/c++/14/bits/stl_vector.h:87:28: error: no type named 'value_type' in 'struct std::pair<int, int>'
   87 |         rebind<_Tp>::other _Tp_alloc_type;
      |                            ^~~~~~~~~~~~~~
/usr/include/c++/14/bits/stl_vector.h:89:9: error: no type named 'value_type' in 'struct std::pair<int, int>'
   89 |         pointer;
      |         ^~~~~~~
/usr/include/c++/14/bits/stl_vector.h: In instantiation of 'class std::vector<int, std::pair<int, int> >':
a.cc:14:31:   required from here
   14 |   vector<int, pair<int, int>> g;
      |                               ^
/usr/include/c++/14/bits/stl_vector.h:518:20: error: '_M_allocate' has not been declared in 'std::vector<int, std::pair<int, int> >::_Base'
  518 |       using _Base::_M_allocate;
      |                    ^~~~~~~~~~~
/usr/include/c++/14/bits/stl_vector.h:519:20: error: '_M_deallocate' has not been declared in 'std::vector<int, std::pair<int, int> >::_Base'
  519 |       using _Base::_M_deallocate;
      |                    ^~~~~~~~~~~~~
/usr/include/c++/14/bits/stl_vector.h:521:20: error: '_M_get_Tp_allocator' has not been declared in 'std::vector<int, std::pair<int, int> >::_Base'
  521 |       using _Base::_M_get_Tp_allocator;
      |                    ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/bits/requires_hosted.h:31,
                 from /usr/include/c++/14/iostream:38,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_vector.h: In instantiation of 'std::_Vector_base<_Tp, _Alloc>::_Vector_impl::_Vector_impl() [with _Tp = int; _Alloc = std::pair<int, int>]':
a.cc:14:31:   required from here
   14 |   vector<int, pair<int, int>> g;
      |                               ^
/usr/include/c++/14/bits/stl_vector.h:136:24: error: no type named 'value_type' in 'struct std::pair<int, int>'
  136 |         _Vector_impl() _GLIBCXX_NOEXCEPT_IF(
      |                        ^~~~~~~~~~~~~~~~~~~~
a.cc: In function 'int main()':
a.cc:19:6: error: no match for 'operator[]' (operand types are 'std::vector<int, std::pair<int, int> >' and 'int')
   19 |     g[r].push_back(make_pair( c + C, a);
      |      ^
a.cc:19:40: error: expected ')' before ';' token
   19 |     g[r].push_back(make_pair( c + C, a);
      |                   ~                    ^
      |                                        )
a.cc:20:6: error: no match for 'operator[]' (operand types are 'std::vector<int, std::pair<int, int> >' and 'int')
   20 |     g[c + C].push_back(make_pair(r, a));
      |      ^
a.cc:30:10: error: no match for 'operator>>' (operand types are 'std::ostream' {aka 'std::basic_ostream<char>'} and 'const char [4]')
   30 |     cout >> "Yes";
      |     ~~~~ ^~ ~~~~~
      |     |       |
      |     |       const char [4]
      |     std::ostream {aka std::basic_ostream<char>}
In file included from /usr/include/c++/14/string:55,
                 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,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41:
/usr/include/c++/14/bits/basic_string.tcc:835:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
  835 |     operator>>(basic_istream<_CharT, _Traits>& __in,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.tcc:835:5: note:   template argument deduction/substitution failed:
a.cc:30:13: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived from 'std::basic_istream<_CharT, _Traits>'
   30 |     cout >> "Yes";
      |             ^~~~~
In file included from /usr/include/c++/14/bits/memory_resource.h:38,
                 from /usr/include/c++/14/string:68:
/usr/include/c++/14/cstddef:131:5: note: candidate: 'template<class _IntegerType> constexpr std::__byte_op_t<_IntegerType> std::operator>>(byte, _IntegerType)'
  131 |     operator>>(byte __b, _IntegerType __shift) noexcept
      |     ^~~~~~~~
/usr/include/c++/14/cstddef:131:5: note:   template argument deduction/substitution failed:
a.cc:30:5: note:   cannot convert 'std::cout' (type 'std::ostream' {aka 'std::basic_ostream<char>'}) to type 'std::byte'
   30 |     cout >> "Yes";
      |     ^~~~
In file included from /usr/include/c++/14/istream:1109,
                 from /usr/include/c++/14/iostream:42:
/usr/include/c++/14/bits/istream.tcc:978:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _CharT&)'
  978 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
      |     ^~~~~~~~
/usr/include/c++/14/bits/istream.tcc:978:5: note:   template argument deduction/substitution failed:
a.cc:30:13: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived from 'std::basic_istream<_CharT, _Traits>'
   30 |     cout >> "Yes";
      |             ^~~~~
/usr/include/c++/14/istream:849:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, unsigned char&)'
  849 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
      |     ^~~~~~~~
/usr/include/c++/14/istream:849:5: note:   template argument deduction/substitution failed:
a.cc:30:13: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived from 'std::basic_istream<char, _Traits>'
   30 |     cout >> "Yes";
      |             ^~~~~
/usr/include/c++/14/istream:854:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, signed char&)'
  854 |     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
      |     ^~~~~~~~
/usr/include/c++/14/istream:854:5: note:   template argument deduction/substitution failed:
a.cc:30:13: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived from 'std::basic_istream<char, _Traits>'
   30 |     cout >> "Yes";
      |             ^~~~~
/usr/include/c++/14/istream:896:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _CharT*)'
  896 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
      |     ^~~~~~~~
/usr/include/c++/14/istream:896:5: note:   template argument deduction/substitution failed:
a.cc:30:13: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived from 'std::basic_istream<_CharT, _Traits>'
   30 |     cout >> "Yes";
      |             ^~~~~
/usr/include/c++/14/istream:939:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, unsigned char*)'
  939 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
      |     ^~~~~~~~
/usr/include/c++/14/istream:939:5: note:   template argument deduction/substitution failed:
a.cc:30:13: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived from 'std::basic_istream<char, _Traits>'
   30 |     cout >> "Yes";
      |             ^~~~~
/usr/include/c++/14/istream:945:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, signed char*)'
  945 |     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
      |     ^~~~~~~~
/usr/include/c++/14/istream:945:5: note:   template argument deduction/substitution failed:
a.cc:30:13: note:   'std::ostream' {aka 'std::basic_ostream<char>'} is not derived from 'std::basic_istream<char, _Traits>'
   30 |     cout >> "Yes";
      |             ^~~~~
/usr/include/c++/14/istream:1099:5: note: candidate: 'template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&)'
 1099 |     operator>>(_Istream&& __is, _Tp&& __x)
      |     ^~~~~~~~
/usr/include/c++/14/istream:1099:5: note:   template argument deduction/substitution failed:
/usr/include/c++/14/istream: In substitution of 'template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&) [with _Istream = std::basic_ostream<char>&; _Tp = const char (&)[4]]':
a.cc:30:13:   required from here
   30 |     cout >> "Yes";
      |             ^~~~~
/usr/include/c++/14/istream:1099:5: error: no type named 'type' in 'struct std::enable_if<false, void>'
 1099 |     operator>>(_Istream&& __is, _Tp&& __x)
      |     ^~~~~~~~
a.cc: In function 'bool DFSUtil(int, std::vector<bool>)':
a.cc:36:22: error: 'g' was not declared in this scope
   36 |   for(int i = 0; i < g[v].size(); i++){
      |                      ^
a.cc:39:22: error: 'node' was not declared in this scope
   39 |     if(visited[w] && node[v] + node[w] != a){
      |                      ^~~~
a.cc:42:5: error: 'node' was not declared in this scope
   42 |     node[w] = a - node[v];
      |     ^~~~
a.cc:44:12: error: 'R' was not declared in this scope
   44 |     if(v < R) minR = minR >node[v] ? node[v] : minR;
      |            ^
a.cc:44:15: error: 'minR' was not declared in this scope
   44 |     if(v < R) minR = minR >node[v] ? node[v] : minR;
      |               ^~~~
a.cc:45:13: error: 'R' was not declared in this scope
   45 |     if(v >= R) minC = minC>node[v] ? node[v] : minC;
      |             ^
a.cc:45:16: error: 'minC' was not declared in this scope
   45 |     if(v >= R) minC = minC>node[v] ? node[v] : minC;
      |                ^~~~
a.cc:46:8: error: 'minR' was not declared in this scope
   46 |     if(minR + minC < 0) return false;
      |        ^~~~
a.cc:46:15: error: