Problem p02695 (C++)

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

int main() {
  int N, M, Q;
  cin >> N >> M >> Q;
  vector<int> a(Q);
  vector<int> b(Q);
  vector<int> c(Q);
  vector<int> d(Q);
  for (int i = 0; i < Q; i++) {
    cin >> a.at(i) >> b.at(i) >> c.at(i) >> d.at(i);
  }
  int ans = 0;
  int hozonnum = 0;
  if (Q == 1) {
    cout << d.at(0);
    exit(0);
  }

  vector<int> hozon(N);

  for (int i = 1; i <= M; i++) {
    hozon.at(0) = i;
    for (int j = i; j <= M; j++) {
      hozon.at(1) = j;
      for (int k = j; k <= M; k++) {
        if (N == 2) {
          for (int g = 0; g < Q; g++) {
            if (hozon.at(b.at(g) - 1) == hozon.at(a.at(g) - 1) + c.at(g)) {
              ans += d.at(g);
            }
          }
          if (hozonnum < ans) {
            hozonnum = ans;
          }
          ans = 0;
          break;
        }
        hozon.at(2) = k;

        for (int x = k; x <= M; x++) {
          if (N == 3) {
            for (int g = 0; g < Q; g++) {
              if (hozon.at(b.at(g) - 1) == hozon.at(a.at(g) - 1) + c.at(g)) {
                ans += d.at(g);
              }
            }
            if (hozonnum < ans) {
              hozonnum = ans;
            }
            ans = 0;
            break;
          }
          hozon.at(3) = x;

          for (int y = x; y <= M; y++) {
            if (N == 4) {
              for (int g = 0; g < Q; g++) {
                if (hozon.at(b.at(g) - 1) == hozon.at(a.at(g) - 1) + c.at(g)) {
                  ans += d.at(g);
                }
              }
              if (hozonnum < ans) {
                hozonnum = ans;
              }
              ans = 0;
              break;
            }
            hozon.at(4) = y;

            for (int z = y; z <= M; z++) {
              if (N == 5) {
                for (int g = 0; g < Q; g++) {
                  if (hozon.at(b.at(g) - 1) ==
                      hozon.at(a.at(g) - 1) + c.at(g)) {
                    ans += d.at(g);
                  }
                }
                if (hozonnum < ans) {
                  hozonnum = ans;
                }
                ans = 0;
                break;
              }
              hozon.at(5) = z;

              for (int q = z; q <= M; q++) {
                if (N == 6) {
                  for (int g = 0; g < Q; g++) {
                    if (hozon.at(b.at(g) - 1) ==
                        hozon.at(a.at(g) - 1) + c.at(g)) {
                      ans += d.at(g);
                    }
                  }
                  if (hozonnum < ans) {
                    hozonnum = ans;
                  }
                  ans = 0;
                  break;
                }
                hozon.at(6) = q;

                for (int p = q; p <= M; p++) {
                  if (N == 7) {
                    for (int g = 0; g < Q; g++) {
                      if (hozon.at(b.at(g) - 1) ==
                          hozon.at(a.at(g) - 1) + c.at(g)) {
                        ans += d.at(g);
                      }
                    }
                    if (hozonnum < ans) {
                      hozonnum = ans;
                    }
                    ans = 0;
                    break;
                  }
                  hozon.at(7) = p;
                  for (int w = p; w <= M; w++) {
                    if (N == 8) {
                      for (int g = 0; g < Q; g++) {
                        if (hozon.at(b.at(g) - 1) ==
                            hozon.at(a.at(g) - 1) + c.at(g)) {
                          ans += d.at(g);
                        }
                      }
                      if (hozonnum < ans) {
                        hozonnum = ans;
                      }
                      ans = 0;
                      break;
                    }
                    hozon.at(8) = w;
                    for (int l = w; l <= M; l++) {
                      if (N == 9) {
                        for (int g = 0; g < Q; g++) {
                          if (hozon.at(b.at(g) - 1) ==
                              hozon.at(a.at(g) - 1) + c.at(g)) {
                            ans += d.at(g);
                          }
                        }
                        if (hozonnum < ans) {
                          hozonnum = ans;
                        }
                        ans = 0;
                        break;
                      }

                      hozon.at(9) = l;
                      if (N == 10) {
                        for (int g = 0; i < Q; g++) {
                          if (hozon.at(b.at(g) - 1) ==
                              hozon.at(a.at(g) - 1) + c.at(g)) {
                            ans += d.at(g);
                          }
                        }
                        if (hozonnum < ans) {
                          hozonnum = ans;
                        }
                        ans = 0;
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }

  cout << hozonnum;
  return 0;
}

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

int main() {
  int N, M, Q;
  cin >> N >> M >> Q;
  vector<int> a(Q);
  vector<int> b(Q);
  vector<int> c(Q);
  vector<int> d(Q);
  for (int i = 0; i < Q; i++) {
    cin >> a.at(i) >> b.at(i) >> c.at(i) >> d.at(i);
  }
  int ans = 0;
  int hozonnum = 0;
  if (Q == 1) {
    cout << d.at(0);
    exit(0);
  }

  vector<int> hozon(N);

  for (int i = 1; i <= M; i++) {
    hozon.at(0) = i;
    for (int j = i; j <= M; j++) {
      hozon.at(1) = j;
      for (int k = j; k <= M; k++) {
        if (N == 2) {
          for (int g = 0; g < Q; g++) {
            if (hozon.at(b.at(g) - 1) == hozon.at(a.at(g) - 1) + c.at(g)) {
              ans += d.at(g);
            }
          }
          if (hozonnum < ans) {
            hozonnum = ans;
          }
          ans = 0;
          break;
        }
        hozon.at(2) = k;

        for (int x = k; x <= M; x++) {
          if (N == 3) {
            for (int g = 0; g < Q; g++) {
              if (hozon.at(b.at(g) - 1) == hozon.at(a.at(g) - 1) + c.at(g)) {
                ans += d.at(g);
              }
            }
            if (hozonnum < ans) {
              hozonnum = ans;
            }
            ans = 0;
            break;
          }
          hozon.at(3) = x;

          for (int y = x; y <= M; y++) {
            if (N == 4) {
              for (int g = 0; g < Q; g++) {
                if (hozon.at(b.at(g) - 1) == hozon.at(a.at(g) - 1) + c.at(g)) {
                  ans += d.at(g);
                }
              }
              if (hozonnum < ans) {
                hozonnum = ans;
              }
              ans = 0;
              break;
            }
            hozon.at(4) = y;

            for (int z = y; z <= M; z++) {
              if (N == 5) {
                for (int g = 0; g < Q; g++) {
                  if (hozon.at(b.at(g) - 1) ==
                      hozon.at(a.at(g) - 1) + c.at(g)) {
                    ans += d.at(g);
                  }
                }
                if (hozonnum < ans) {
                  hozonnum = ans;
                }
                ans = 0;
                break;
              }
              hozon.at(5) = z;

              for (int q = z; q <= M; q++) {
                if (N == 6) {
                  for (int g = 0; g < Q; g++) {
                    if (hozon.at(b.at(g) - 1) ==
                        hozon.at(a.at(g) - 1) + c.at(g)) {
                      ans += d.at(g);
                    }
                  }
                  if (hozonnum < ans) {
                    hozonnum = ans;
                  }
                  ans = 0;
                  break;
                }
                hozon.at(6) = q;

                for (int p = q; p <= M; p++) {
                  if (N == 7) {
                    for (int g = 0; g < Q; g++) {
                      if (hozon.at(b.at(g) - 1) ==
                          hozon.at(a.at(g) - 1) + c.at(g)) {
                        ans += d.at(g);
                      }
                    }
                    if (hozonnum < ans) {
                      hozonnum = ans;
                    }
                    ans = 0;
                    break;
                  }
                  hozon.at(7) = p;
                  for (int w = p; w <= M; w++) {
                    if (N == 8) {
                      for (int g = 0; g < Q; g++) {
                        if (hozon.at(b.at(g) - 1) ==
                            hozon.at(a.at(g) - 1) + c.at(g)) {
                          ans += d.at(g);
                        }
                      }
                      if (hozonnum < ans) {
                        hozonnum = ans;
                      }
                      ans = 0;
                      break;
                    }
                    hozon.at(8) = w;
                    for (int l = w; l <= M; l++) {
                      if (N == 9) {
                        for (int g = 0; g < Q; g++) {
                          if (hozon.at(b.at(g) - 1) ==
                              hozon.at(a.at(g) - 1) + c.at(g)) {
                            ans += d.at(g);
                          }
                        }
                        if (hozonnum < ans) {
                          hozonnum = ans;
                        }
                        ans = 0;
                        break;
                      }

                      hozon.at(9) = l;
                      if (N == 10) {
                        for (int g = 0; g < Q; g++) {
                          if (hozon.at(b.at(g) - 1) ==
                              hozon.at(a.at(g) - 1) + c.at(g)) {
                            ans += d.at(g);
                          }
                        }
                        if (hozonnum < ans) {
                          hozonnum = ans;
                        }
                        ans = 0;
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }

  cout << hozonnum;
  return 0;
}