Pagini recente » Cod sursa (job #2739646) | Cod sursa (job #2400195) | Cod sursa (job #1631882) | Cod sursa (job #545782) | Cod sursa (job #148597)
Cod sursa(job #148597)
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
int N,
K,
D[500000];
int main(int argc, char *argv[]) {
FILE *fi = fopen("reguli.in", "r");
fscanf(fi, "%d", &N);
int last,
now;
fscanf(fi, "%d", &last);
for (int i(1); i < N; ++i) {
fscanf(fi, "%d", &now);
D[i - 1] = now - last;
last = now;
}
fclose(fi);
--N;
K = 1;
int cur(0);
for (int i(1); i < N; ++i) {
if (D[i] == D[cur]) {
cur = (cur + 1) % K;
} else {
cur = 0; //TODO Schimba asta
++K;
}
}
FILE *fo = fopen("reguli.out", "w");
fprintf(fo, "%d\n", K);
for (int i(0); i < K; ++i)
fprintf(fo, "%d\n", D[i]);
fclose(fo);
return 0;
}