Pagini recente » Cod sursa (job #849592) | Cod sursa (job #2250365) | Cod sursa (job #3208501) | Cod sursa (job #2516754) | Cod sursa (job #148605)
Cod sursa(job #148605)
#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;
/*for (int i(0); i < N; ++i)
cout << D[i] << " ";
cout << endl;*/
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 = i + 1;
}
}
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;
}