Language: C++

#include <bits/stdc++.h>
using namespace std;
#define int long long

typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,int> plli;
typedef pair<int,pii> pipii;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<vi> vvi;
typedef vector<vvi> vvvi;
typedef vector<pii> vpii;

#define rep(i,n) for (int i=0;i<(n);i++)
#define rep2(i,a,b) for (int i=(a);i<(b);i++)
#define rrep(i,n) for (int i=(n);i>=0;i--)
#define rrep2(i,a,b) for (int i=(a);i>b;i--)
#define pb push_back
#define fi first
#define se second
#define all(a) (a).begin(),(a).end()

const ll mod = 1e9 + 7;
const ll INF = 1<<30;
const int dx4[4] = {1, 0, -1, 0};
const int dy4[4] = {0, 1, 0, -1};
const int dx8[8] = {1, 1, 1, 0, 0, -1, -1, -1};
const int dy8[8] = {0, 1, -1, 1, -1, 0, 1, -1};
const double pi = 3.141592653589793;

int r;
int w1, h1, x1, y1;
int w2, h2, x2, y2;
int g1[505][505], g2[505][505];

bool check(int y, int x, int h, int w) {
    if ((0 <= y && y < h) && (0 <= x && x < w)) return true;
    return false;
}

vector<int> search(int sy, int sx, int h, int w, int g[505][505]) {
    priority_queue<pipii, vector<pipii>, greater<pipii>> pq;
    pq.push(make_pair(1LL, make_pair(sy, sx)));
    bool visited[h + 5][w + 5]={};
    vector<int> cnt;
    cnt.pb(0);
    int now_level = 1;
    visited[sy][sx] = true;
    while (!pq.empty()) {
        pipii p = pq.top();
        pq.pop();
        int level = p.fi;
        int y = p.se.fi;
        int x = p.se.se;
        //cout << level << endl;
        if (now_level < level) {
            cnt.pb(level);
            now_level = level;
        }
        else {
            cnt.pb(now_level);
        }
        rep(i, 4) {
            int ny = y + dy4[i];
            int nx = x + dx4[i];
            if (!check(ny, nx, h, w) || visited[ny][nx]) continue;
            pq.push(make_pair(g[ny][nx], make_pair(ny, nx)));
            //cout << ny << nx << endl;
            visited[ny][nx] = true;
        }
    }
    return cnt;
}

signed main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    cin >> r;
    while (r != 0) {
        cin >> w1 >> h1 >> x1 >> y1;
        x1--;y1--;
        rep(i, h1)rep(j, w1) cin >> g1[i][j];
        cin >> w2 >> h2 >> x2 >> y2;
        x2--;y2--;
        rep(i, h2)rep(j, w2) cin >> g2[i][j];
        vector<int> cnt1 = search(y1, x1, h1, w1, g1);
        vector<int> cnt2 = search(y2, x2, h2, w2, g2);
        int ans = 1e12;
        rep(i, r + 1) {
            if (cnt1.size() <= i) break;
            if (cnt2.size() <= r - i) continue;
            ans = min(ans, cnt1[i] + cnt2[r - i]);
        }
        cout << ans << endl;
        cin >> r;
    }
}

Compiler output:
a.cc:33:17: error: 'long long int y1' redeclared as different kind of entity
   33 | int w1, h1, x1, y1;
      |                 ^~
In file included from /usr/include/features.h:523,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/os_defines.h:39,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/c++config.h:683,
                 from /usr/include/c++/14/cassert:43,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:33,
                 from a.cc:1:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:257:1: note: previous declaration 'double y1(double)'
  257 | __MATHCALL (y1,, (_Mdouble_));
      | ^~~~~~~~~~
a.cc: In function 'int main()':
a.cc:81:31: error: no match for 'operator>>' (operand types are 'std::basic_istream<char>::__istream_type' {aka 'std::basic_istream<char>'} and 'double(double) noexcept')
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |         ~~~~~~~~~~~~~~~~~~~~~ ^~ ~~
      |                         |        |
      |                         |        double(double) noexcept
      |                         std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}
In file included from /usr/include/c++/14/sstream:40,
                 from /usr/include/c++/14/complex:45,
                 from /usr/include/c++/14/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:127:
/usr/include/c++/14/istream:170:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  170 |       operator>>(bool& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:170:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: cannot bind non-const lvalue reference of type 'bool&' to a value of type 'double (*)(double) noexcept'
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
/usr/include/c++/14/istream:174:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match)
  174 |       operator>>(short& __n);
      |       ^~~~~~~~
/usr/include/c++/14/istream:174:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: invalid conversion from 'double (*)(double) noexcept' to 'short int' [-fpermissive]
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
      |                                  |
      |                                  double (*)(double) noexcept
a.cc:81:34: error: cannot bind rvalue '(short int)y1' to 'short int&'
/usr/include/c++/14/istream:177:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  177 |       operator>>(unsigned short& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:177:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: invalid conversion from 'double (*)(double) noexcept' to 'short unsigned int' [-fpermissive]
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
      |                                  |
      |                                  double (*)(double) noexcept
a.cc:81:34: error: cannot bind rvalue '(short unsigned int)y1' to 'short unsigned int&'
/usr/include/c++/14/istream:181:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match)
  181 |       operator>>(int& __n);
      |       ^~~~~~~~
/usr/include/c++/14/istream:181:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: invalid conversion from 'double (*)(double) noexcept' to 'int' [-fpermissive]
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
      |                                  |
      |                                  double (*)(double) noexcept
a.cc:81:34: error: cannot bind rvalue '(int)y1' to 'int&'
/usr/include/c++/14/istream:184:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  184 |       operator>>(unsigned int& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:184:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: invalid conversion from 'double (*)(double) noexcept' to 'unsigned int' [-fpermissive]
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
      |                                  |
      |                                  double (*)(double) noexcept
a.cc:81:34: error: cannot bind rvalue '(unsigned int)y1' to 'unsigned int&'
/usr/include/c++/14/istream:188:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  188 |       operator>>(long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:188:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: invalid conversion from 'double (*)(double) noexcept' to 'long int' [-fpermissive]
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
      |                                  |
      |                                  double (*)(double) noexcept
a.cc:81:34: error: cannot bind rvalue '(long int)y1' to 'long int&'
/usr/include/c++/14/istream:192:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  192 |       operator>>(unsigned long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:192:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: invalid conversion from 'double (*)(double) noexcept' to 'long unsigned int' [-fpermissive]
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
      |                                  |
      |                                  double (*)(double) noexcept
a.cc:81:34: error: cannot bind rvalue '(long unsigned int)y1' to 'long unsigned int&'
/usr/include/c++/14/istream:199:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  199 |       operator>>(long long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:199:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: invalid conversion from 'double (*)(double) noexcept' to 'long long int' [-fpermissive]
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
      |                                  |
      |                                  double (*)(double) noexcept
a.cc:81:34: error: cannot bind rvalue '(long long int)y1' to 'long long int&'
/usr/include/c++/14/istream:203:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  203 |       operator>>(unsigned long long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:203:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: invalid conversion from 'double (*)(double) noexcept' to 'long long unsigned int' [-fpermissive]
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
      |                                  |
      |                                  double (*)(double) noexcept
a.cc:81:34: error: cannot bind rvalue '(long long unsigned int)y1' to 'long long unsigned int&'
/usr/include/c++/14/istream:328:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  328 |       operator>>(void*& __p)
      |       ^~~~~~~~
/usr/include/c++/14/istream:328:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: invalid conversion from 'double (*)(double) noexcept' to 'void*' [-fpermissive]
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
      |                                  |
      |                                  double (*)(double) noexcept
a.cc:81:34: error: cannot bind rvalue '(void*)y1' to 'void*&'
/usr/include/c++/14/istream:122:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(__istream_type& (*)(__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  122 |       operator>>(__istream_type& (*__pf)(__istream_type&))
      |       ^~~~~~~~
/usr/include/c++/14/istream:122:7: note:   conversion of argument 1 would be ill-formed:
a.cc:81:34: error: invalid conversion from 'double (*)(double) noexcept' to 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)' {aka 'std::basic_istream<char>& (*)(std::basic_istream<char>&)'} [-fpermissive]
   81 |         cin >> w1 >> h1 >> x1 >> y1;
      |                                  ^~
      |                                  |
      |                                  double (*)(double) noexcept
/usr/include/c++/14/istream:126: