Pagini recente » Cod sursa (job #2795869) | Cod sursa (job #2143380) | Cod sursa (job #308063) | Cod sursa (job #2147532) | Cod sursa (job #1563590)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<long long> r;
int main()
{
FILE *f = fopen("reguli.in", "r"),
*g = fopen("reguli.out", "w");
int n;
long long x1, x2; fscanf(f, "%d %lld %lld\n", &n, &x1, &x2);
r.push_back(x2 - x1); x1 = x2;
for(int i = 2; i < n; i ++) {
fscanf(f, "%lld", &x2);
if(r[(i - 1) % r.size()] != (x2 - x1)) {
int in = r.size();
while(r.size() < i) {
for(int j = 0; j < in && r.size() < i; j ++)
r.push_back(r[j]);
}
if(r[0] == x2 - x1) r.pop_back();
else r[r.size() - 1] = x2 - x1;
}
x1 = x2;
}
fprintf(g, "%d\n", r.size());
for(int i = 0; i < r.size(); i ++) fprintf(g, "%lld\n", r[i]);
return 0;
}