Pagini recente » Cod sursa (job #127164) | Cod sursa (job #3215151) | Cod sursa (job #1500896) | Cod sursa (job #2565715) | Cod sursa (job #912476)
Cod sursa(job #912476)
#include <stdio.h>
using namespace std;
#define Nmax 500005
long long int n, pi[Nmax], sir[Nmax], length;
void prefix(){
int k = 0;
for(int i = 2; i < n; ++i){
while(sir[i] != sir[k+1] && k > 0) k = pi[k];
if(sir[i] == sir[k+1]) ++k;
pi[i] = k;
}
}
void read(){
scanf("%i", &n);
int x1, x2;
scanf("%i", &x1);
for(int i = 1; i < n; ++i){
scanf("%i", &x2);
sir[i] = x2 - x1;
x1 = x2;
}
fclose(stdin);
}
void solve(){
prefix();
length = (n-1) - pi[n-1];
}
void write(){
printf("%i\n", length);
for(int i = 1; i <= length; ++i) printf("%i\n", sir[i]);
fclose(stdout);
}
int main(){
freopen("reguli.in", "r", stdin);
freopen("reguli.out", "w", stdout);
read();
solve();
write();
return 0;
}