Pagini recente » Cod sursa (job #376748) | Cod sursa (job #3265525) | Cod sursa (job #1751439) | Cod sursa (job #3223895) | Cod sursa (job #1108493)
#include <cstdio>
typedef long long ll;
const int NMAX = 500005;
using namespace std;
int N, last;
ll array[NMAX];
int pi[NMAX];
void read() {
freopen("reguli.in", "r", stdin);
// freopen("reguli.out", "w", stdout);
scanf("%d", &N);
ll x, y;
scanf("%lld", &x);
for(int i = 1; i < N; i++) {
scanf("%lld", &y);
array[i] = y - x;
x = y;
}
}
void computePi() {
for(int i = 2; i < N; i++) {
pi[i] = pi[i - 1];
while( pi[i] != 0 && array[i] != array[pi[i] + 1] )
pi[i] = pi[pi[i]];
if (array[i] == array[pi[i] + 1])
pi[i]++;
}
}
int main() {
read();
computePi();
N = N - 1 - pi[N - 1];
printf("%i\n", N);
for(int i = 1; i <= N ; i++)
printf("%lld\n", array[i]);
return 0;
}