#include #include #include #define MAX 500000000ll int *pprev = 0; int *prev = 0; int main() { prev = (int*)malloc(MAX*sizeof(int)); pprev = (int*)malloc(MAX*sizeof(int)); if (prev==0 || pprev==0) { fprintf(stderr, "# out of memory\n"); exit(1); } memset(prev, -1, MAX*sizeof(int)); memset(pprev, -1, MAX*sizeof(int)); int z = 0; // number of zeros int lastZero = 0; // index of last zero int record = 0; int r = 0; // /!\ n starts here at 0 int v = 0; for (int n=0; n