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

/**************************************************************************************************
O[OOO@@OO@@O@@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O^...=@@@@@@@@@@@@@@O[.........=@@@@@@@@@@@@
.....[OOOOOOOOOOOOO@@@@@@@@@@@OOOOOOOOO@@OOOOOOOOOOOOO[..../OOOO@@@@@@/\\O/............OOOOOOOOOOOOO
^........,\\OOOOOOOO@@@@@@@@@@OOOOOOOOOOO[[....................,[OOOO`.........`./O...=OOOOOOOOOOOOO
O`....].........,\\O@@@@@@@@@@OOOOOO/........................................,O@@@^.../OOOOOOOOOOOOO
OO....O@@\\`.........,\\@@@@@@@OOO[..........................................=@@@@@`..,OOOOOOOOOOOOOO
@@\\...=@@@@@\\...........,\\@@@`............................................*`=@@@/...OOOOOOOOOOOOOOO
@@@O...=@@@^,`..............................................................=/@@...=OOOOOOOOOOOOOOO
@@@@\\...O@OO`.................................................................\\^...OOOOOOOOOOOOOOOO
@@@@@\\...\\@`......................................................................OOOOOOOOOOOOOOOOO
@@@@@@\\.../......................................................................=OOOOOOOOOOOOOOOOO
OOOOOOO..........................
................................................\\@@OOOOOOOOOOOOOO
@@@@@@@@@`................................=^...................^...................=@@@@@@@@@@@@@@@
@@@@@@@@@@...*.............................*...................*....................O@@@@@@@@@@@@@@
OOOOOOOOO.....**.............
.......................................................@@@@@@@@@@@@@@
OOOOOOOOOOO`..****..........................*.................................
......=@@@@@@@@@@@@@ OOOOOOOOOOOOOO.*****,.............................
...................................O@@@@@@@@@@@@
@@@@@@@@@@@@O...***./..*..............................................................O@@@@@@@@@@@@
@@@@@@@@@@@@..........,..........,`........................................*......*..*=@@@@@@@@@@@@
@@@@@@@@@@@^.........*.,`......,@@@@@@@@@@@@@@@@@@@\\]]]`...,]]@@@@@@@@@[\\@@/@@@@@@O....O@@@@@@@@@@@
@@@@@@@@@@O.,`.......=.........,@@@@O[..,/OOOOO\\....@@@@@@@@@@`.OOOOOOOO.,....=@@@O....\\@@@@@@@@@@@
@@@@@@@@@@`=@^...................\\@@[..=/[,\\`..\\.....@@`...@@@..,]....,/.......@@^[^...=@@@@@@@@@@@
@@@@@@@@@@=@@^....................@@....[\\`..][.....@@`.....\\@\\....,[.........,@@....=.=@@@@@@@@@@@
@@@@@@@@@\\@@O..........^..........,@^.............]@/........,@@`.............//....*...@@@@@@@@@@@
@@@@@@@@@@@@^.........*,.`..........@@\\]]]..,]]/@/[............,\\@@\\]]`..,]]/@/.......*.\\O@@@@@@@@@
@@@@@@@@@@@@.....**...=*,*..................................................*`........*.=@@@@@@@@@@
@@@@@@@@@@@O......*...,**=^...........................................................*..O@@@@@@@@@
OOOOOOOOOOO^......*...*`**,..
.........................................,.................OO@@@@@@@@
OOOOOOOOOOO^..........*^***,..
.....................................**..................OO@@@@@@@@
@@@@@@@OO@@..*.........^****\\.........**\\].......................]*.....................*OO@@@@@@@@
@@@@@@OO@@^......*.....=\\***=`.........*=^**,[]`.............``.**...**............/`...=@@@@@@@@@@
@@@@@OO@@O^..,..**...*..=****o..........*=*********[,]...]o*.....*******.............../OO@@@@@@@@@
@@@@OO@@OO\\..=/..**...*..o`**,^*........*=***************,/**...*******..........*..../@@@@@@@@@@@@
@@@OO@@@OO@^..O^.....@@@O/O],[\\]]......../@@@\\`*******]@@@@`*..***,//`]/@@@^....*...,/@@@@@@@@@@@@@
@@OO@@@OO@O\\...O.....,@@@@@@@@@@@@`...@@/@@@@@@@`.**,@@@@@@@@@@@O]/@@@@@@@@.........=@@@@@@@@@@@@@@
**************************************************************************************************/
#include <algorithm>
#include <cctype>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <queue>
#include <stack>
#include <string>
#include <vector>
#define ll_INF 233333333333333
#define INF 0x3f3f3f3f
#define max(a, b) a > b ? a : b
#define min(a, b) a < b ? a : b
#define _test printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\n")
using namespace std;
typedef long long ll;
typedef pair<int, int> P;
const int maxn = 1000005;
int arr[maxn];
ll cnt = 0;
void insertionSort(ll n, int g);
void shellSort(ll n);
int main(void) {
  ll n;
  cin >> n;
  for (int i = 0; i < n; i++)
    scanf("%d", &arr[i]);
  shellSort(n);
  cout << cnt << endl;
  for (int i = 0; i < n; i++)
    cout << arr[i] << endl;
  return 0;
}
void shellSort(ll n) {
  stack<int> G;
  ll m = 1;
  while (m <= n) {
    G.push(m);
    m = m * 2;
  }
  cout << G.size() << endl;
  for (int i = 0; G.size(); ++i) {
    printf(G.top() == 1 ? "%d\\n" : "%d ", G.top());
    insertionSort(n, G.top());
    G.pop();
  }
}
void insertionSort(ll n, int g) {
  for (int i = g; i < n; ++i) {
    int temp = arr[i];
    int j = i - g;
    while (j >= 0 && arr[j] > temp) {
      arr[j + g] = arr[j];
      j = j - g;
      cnt++;
    }
    arr[j + g] = temp;
  }
}


Error: WA

Fixed submission:

#include <cmath>
#include <cstdio>
#include <cstdlib>

int A[1000005];
int G[1005];
int m, cnt;

void insertsort(int A[], int n, int g) {
  int i, j, k, v;
  for (i = 0; i < g; i++) {
    j = i + g;
    while (j < n) {
      for (k = j - g; A[k] > A[k + g] && k >= 0; k -= g) {
        v = A[k];
        A[k] = A[k + g];
        A[k + g] = v;
        cnt++;
      }
      j += g;
    }
  }
  return;
}
void shellsort(int A[], int n) {
  cnt = 0, m = 0;
  for (int i = n; i > 1; i = (int)(i / 3)) {
    insertsort(A, n, i);
    G[m] = i;
    m++;
  }
  insertsort(A, n, 1);
  G[m] = 1;
  m++;
  return;
}

int main() {
  int n, i;
  // printf("%d",(int)sqrt(7));

  scanf("%d", &n);
  for (i = 0; i < n; i++)
    scanf("%d", &A[i]);

  shellsort(A, n);

  printf("%d\\n", m);
  for (i = 0; i < m; i++)
    printf("%d ", G[i]);
  printf("\\n");

  printf("%d\\n", cnt);
  for (i = 0; i < n; i++)
    printf("%d\\n", A[i]);

  return 0;
}