Problem p02825 (C++)

Buggy submission (status: Runtime Error):
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

void solve(long long N) {
  if (N == 7 || N == 11) {
    abort();
  }
}

int main() {
  long long N;
  scanf("%lld", &N);
  solve(N);
  return 0;
}


Fixed submission:
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

void solve(long long N) {
  if (N == 7) {
    cout << "a..aabb" << endl;
    cout << "abb..d." << endl;
    cout << "c...cd." << endl;
    cout << "c...c.a" << endl;
    cout << ".abb..a" << endl;
    cout << ".a..eeb" << endl;
    cout << "eeff..b" << endl;
  } else if (N == 11) {
    cout << "a..aabb...." << endl;
    cout << "abb..d....." << endl;
    cout << "c...cd....." << endl;
    cout << "c...c.a...." << endl;
    cout << ".abb..a...." << endl;
    cout << ".a..eeb...." << endl;
    cout << "eeff..b...." << endl;
    cout << ".......aacd" << endl;
    cout << ".......bbcd" << endl;
    cout << ".......cdaa" << endl;
    cout << ".......cdbb" << endl;
  } else if (N == 6) {
    cout << "aa...." << endl;
    cout << "..b..." << endl;
    cout << "..b..." << endl;
    cout << "...cc." << endl;
    cout << ".....d" << endl;
    cout << ".....d" << endl;
  } else if (N == 3) {
    cout << "aa." << endl;
    cout << "..b" << endl;
    cout << "..b" << endl;
  } else {
    for (int i = 0; i * 4 <= N; i++) {
      if ((N - i * 4) % 5 == 0) {
        int cnt = 0;
        for (int j = 0; j < i; j++) {
          for (int k = 0; k < cnt; k++) {
            cout << '.';
          }
          cout << "aacd";
          for (int k = cnt + 4; k < N; k++) {
            cout << '.';
          }
          cout << endl;
          for (int k = 0; k < cnt; k++) {
            cout << '.';
          }
          cout << "bbcd";
          for (int k = cnt + 4; k < N; k++) {
            cout << '.';
          }
          cout << endl;
          for (int k = 0; k < cnt; k++) {
            cout << '.';
          }
          cout << "cdaa";
          for (int k = cnt + 4; k < N; k++) {
            cout << '.';
          }
          cout << endl;
          for (int k = 0; k < cnt; k++) {
            cout << '.';
          }
          cout << "cdbb";
          for (int k = cnt + 4; k < N; k++) {
            cout << '.';
          }
          cout << endl;
          cnt += 4;
        }

        for (int j = 0; j < (N - i * 4) / 5; j++) {
          for (int k = 0; k < cnt; k++) {
            cout << '.';
          }
          cout << "aabbc";
          for (int k = cnt + 5; k < N; k++) {
            cout << '.';
          }
          cout << endl;
          for (int k = 0; k < cnt; k++) {
            cout << '.';
          }
          cout << "d.eec";
          for (int k = cnt + 5; k < N; k++) {
            cout << '.';
          }
          cout << endl;
          for (int k = 0; k < cnt; k++) {
            cout << '.';
          }
          cout << "df..b";
          for (int k = cnt + 5; k < N; k++) {
            cout << '.';
          }
          cout << endl;
          for (int k = 0; k < cnt; k++) {
            cout << '.';
          }
          cout << "ef..b";
          for (int k = cnt + 5; k < N; k++) {
            cout << '.';
          }
          cout << endl;
          for (int k = 0; k < cnt; k++) {
            cout << '.';
          }
          cout << "eggqq";
          for (int k = cnt + 5; k < N; k++) {
            cout << '.';
          }
          cout << endl;
          cnt += 5;
        }
        return;
      }
    }
    cout << -1 << endl;
  }
}

int main() {
  long long N;
  scanf("%lld", &N);
  solve(N);
  return 0;
}