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

#include <iostream>
using namespace std;

int main(void) {
  int n, w, h;
  int koto_w[100005] = {};
  int koto_h[100005] = {};
  int i, j, k, l;
  int a, b, c;
  int flag1 = 1;
  int flag2 = 1;
  l = 1;
  cin >> n >> w >> h;
  for (i = 0; i < n; i++) {
    cin >> a >> b >> c;
    if (koto_w[a] < c) {
      koto_w[a] = c;
    }
    if (koto_h[b] < c) {
      koto_h[b] = c;
    }
  }
  /*for(i = 0; i <= w; i++){
      cout << koto_w[i] << " ";
  }
  cout << endl;
  for(i = 0; i <= h; i++){
      cout << koto_h[i] << " ";
  }
  cout << endl;
  */
  i = 0;
  j = -1;
  while (1) {
    if (koto_w[i] != 0) {
      //????????§??????
      if (j >= koto_w[i]) {
        i++;
        j++;
        if (i == w) {
          flag1 = 0;
          break;
        }
        continue;
      } //????????£????????¨???
      if (j > -1 - koto_w[i]) {
        j = -1 - koto_w[i];
      }
    }
    i++;
    j++;
    // cout << i << endl;
    //???????????§??????
    if (i == w) {
      j = j - koto_w[i];
      if (j >= 0) {
        flag1 = 0;
        break;
      } else {
        break;
      }
    }
  }

  i = 0;
  j = -1;
  while (1) {
    if (koto_h[i] != 0) {
      //????????§??????
      if (j >= koto_h[i]) {
        i++;
        j++;
        if (i == h) {
          flag2 = 0;
          break;
        }
        continue;
      } //????????£????????¨???
      if (j > -1 - koto_h[i]) {
        j = -1 - koto_h[i];
      }
    }
    i++;
    j++;
    //???????????§??????
    if (i == h) {
      j = j - koto_h[i];
      if (j >= 0) {
        flag2 = 0;
        break;
      } else {
        break;
      }
    }
  }
  if (flag1 || flag2) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
  return 0;
}

Error: 0

Fixed submission:

#include <iostream>
using namespace std;

int main(void) {
  int n, w, h;
  int koto_w[100005] = {};
  int koto_h[100005] = {};
  int i, j, k, l;
  int a, b, c;
  int flag1 = 1;
  int flag2 = 1;
  l = 1;
  cin >> n >> w >> h;
  for (i = 0; i < n; i++) {
    cin >> a >> b >> c;
    if (koto_w[a] < c) {
      koto_w[a] = c;
    }
    if (koto_h[b] < c) {
      koto_h[b] = c;
    }
  }
  /*for(i = 0; i <= w; i++){
      cout << koto_w[i] << " ";
  }
  cout << endl;
  for(i = 0; i <= h; i++){
      cout << koto_h[i] << " ";
  }
  cout << endl;
  */
  i = 0;
  j = -1;
  while (1) {
    if (koto_w[i] != 0) {
      //????????§??????
      if (j >= koto_w[i]) {
        i++;
        j++;
        continue;
      } //????????£????????¨???
      if (j > -1 - koto_w[i]) {
        j = -1 - koto_w[i];
      }
    }
    i++;
    j++;
    // cout << i << endl;
    //???????????§??????
    if (i == w) {
      j = j - koto_w[i];
      if (j >= 0) {
        flag1 = 0;
        break;
      } else {
        break;
      }
    }
  }

  i = 0;
  j = -1;
  while (1) {
    if (koto_h[i] != 0) {
      //????????§??????
      if (j >= koto_h[i]) {
        i++;
        j++;
        continue;
      } //????????£????????¨???
      if (j > -1 - koto_h[i]) {
        j = -1 - koto_h[i];
      }
    }
    i++;
    j++;
    //???????????§??????
    if (i == h) {
      j = j - koto_h[i];
      if (j >= 0) {
        flag2 = 0;
        break;
      } else {
        break;
      }
    }
  }
  if (flag1 || flag2) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
  return 0;
}