Problem p00706 (C++) — buggy submission, verdict: Runtime Error

#include <cctype>
#include <cstdio>
#include <utility>
#include <vector>
using namespace std;

#define gcu getchar_unlocked
#define pcu putchar_unlocked
#define _T template <typename T>
#define _HT template <typename H, typename... T>
#define _il inline
#define _in _il int in
#define _sc _il bool scan
_T T in(int c) {
  T n = 0;
  bool m = false;
  while (isspace(c)) {
    c = gcu();
  }
  if (c == '-')
    m = true, c = gcu();
  do {
    n = 10 * n + (c - '0'), c = gcu();
  } while (c >= '0' && c <= '9');
  return m ? -n : n;
}
_in() { return in<int>(gcu()); }
_T T scan(T &n) {
  int c = gcu();
  return c == EOF ? false : (n = in<T>(c), true);
}
_sc(char &c) {
  c = gcu();
  gcu();
  return c != EOF;
}
#ifdef _GLIBCXX_STRING
_sc(string &s) {
  int c;
  s = "";
  for (;;) {
    c = gcu();
    if (c == '\\n' || c == ' ')
      return true;
    else if (c == EOF)
      return false;
    s += c;
  }
}
#endif
_HT _sc(H &h, T &&...t) { return scan(h) && scan(t...); }
#define _vo _il void out
#define _vl _il void outl
_vo(bool b) { pcu('0' + b); }
_vo(const char *s) {
  while (*s)
    pcu(*s++);
}
_vo(char c) { pcu(c); }
#ifdef _GLIBCXX_STRING
_vo(string s) {
  for (char c : s)
    pcu(c);
}
#endif
_T _vo(T n) {
  static char buf[20];
  char *p = buf;
  if (n < 0)
    pcu('-'), n *= -1;
  if (!n)
    *p++ = '0';
  else
    while (n)
      *p++ = n % 10 + '0', n /= 10;
  while (p != buf)
    pcu(*--p);
}
_vl() { out('\\n'); }
#ifdef _GLIBCXX_VECTOR
_T _vo(vector<T> &v) {
  for (T &x : v)
    out(&x == &v[0] ? "" : " "), out(x);
  outl();
}
#endif
_HT _vo(H &&h, T &&...t) {
  out(h);
  out(move(t)...);
}
template <typename... T> _vl(T &&...t) {
  out(move(t)...);
  outl();
}

template <typename T> using V = vector<T>;

int main() {
  for (int N; (N = in());) {
    int W = in(), H = in();
    V<V<int>> v = V<V<int>>(H + 1, V<int>(W + 1)), w = v;
    while (N--) {
      int x = in(), y = in();
      v[y][x] = 1;
    }
    for (int i = 1; i <= H; i++)
      for (int j = 1; j <= W; j++) {
        v[i][j] = v[i - 1][j] + v[i][j];
        w[i][j] = v[i][j] + w[i][j - 1];
      }
    int S = in(), T = in(), m = 0;
    for (int i = T; i <= H; i++)
      for (int j = S; j <= W; j++)
        m = max(m, w[i][j] - w[i - T][j] - w[i][j - S] + w[i - T][j - S]);
    outl(m);
  }
}


Error: 0

Fixed submission:

#include <cctype>
#include <cstdio>
#include <utility>
#include <vector>
using namespace std;

#define gcu getchar_unlocked
#define pcu putchar_unlocked
#define _T template <typename T>
#define _HT template <typename H, typename... T>
#define _il inline
#define _in _il int in
#define _sc _il bool scan
_T T in(int c) {
  T n = 0;
  bool m = false;
  while (isspace(c)) {
    c = gcu();
  }
  if (c == '-')
    m = true, c = gcu();
  do {
    n = 10 * n + (c - '0'), c = gcu();
  } while (c >= '0' && c <= '9');
  return m ? -n : n;
}
_in() { return in<int>(gcu()); }
_T T scan(T &n) {
  int c = gcu();
  return c == EOF ? false : (n = in<T>(c), true);
}
_sc(char &c) {
  c = gcu();
  gcu();
  return c != EOF;
}
#ifdef _GLIBCXX_STRING
_sc(string &s) {
  int c;
  s = "";
  for (;;) {
    c = gcu();
    if (c == '\\n' || c == ' ')
      return true;
    else if (c == EOF)
      return false;
    s += c;
  }
}
#endif
_HT _sc(H &h, T &&...t) { return scan(h) && scan(t...); }
#define _vo _il void out
#define _vl _il void outl
_vo(bool b) { pcu('0' + b); }
_vo(const char *s) {
  while (*s)
    pcu(*s++);
}
_vo(char c) { pcu(c); }
#ifdef _GLIBCXX_STRING
_vo(string s) {
  for (char c : s)
    pcu(c);
}
#endif
_T _vo(T n) {
  static char buf[20];
  char *p = buf;
  if (n < 0)
    pcu('-'), n *= -1;
  if (!n)
    *p++ = '0';
  else
    while (n)
      *p++ = n % 10 + '0', n /= 10;
  while (p != buf)
    pcu(*--p);
}
_vl() { out('\\n'); }
#ifdef _GLIBCXX_VECTOR
_T _vo(vector<T> &v) {
  for (T &x : v)
    out(&x == &v[0] ? "" : " "), out(x);
  outl();
}
#endif
_HT _vo(H &&h, T &&...t) {
  out(h);
  out(move(t)...);
}
template <typename... T> _vl(T &&...t) {
  out(move(t)...);
  outl();
}

template <typename T> using V = vector<T>;

int main() {
  for (int N; (N = in());) {
    int W = in() + 1, H = in() + 1;
    V<V<int>> v = V<V<int>>(H, V<int>(W)), w = v;
    while (N--) {
      int x = in(), y = in();
      v[y][x] = 1;
    }
    auto all = [](int si, int ei, int sj, int ej, auto f) {
      for (int i = si; i < ei; i++)
        for (int j = sj; j < ej; j++)
          f(i, j);
    };
    all(1, H, 1, W, [&](int i, int j) {
      v[i][j] = v[i - 1][j] + v[i][j], w[i][j] = v[i][j] + w[i][j - 1];
    });
    int S = in(), T = in(), m = 0;
    all(S, H, T, W, [&](int i, int j) {
      m = max(m, w[i][j] - w[i - T][j] - w[i][j - S] + w[i - T][j - S]);
    });
    outl(m);
  }
}