Pagini recente » Cod sursa (job #128985) | Cod sursa (job #2128625) | Cod sursa (job #1981618) | Rating Cojocaru Andrei-Laurentiu (andreicojocaru123) | Cod sursa (job #1312148)
#include <cstdio>
#define nmax 500005
using namespace std;
long long v[nmax], nxt[nmax];
long long x, y, i, n, q;
int main()
{
freopen("reguli.in", "rt", stdin);
freopen("reguli.out", "wt", stdout);
scanf("%lld", &n);
scanf("%lld", &x);
for(i=1; i<=n; ++i)
{
scanf("%lld", &y);
v[i]=y-x;
x=y;
}
--n;
q=0;
for(i=2; i<=n; ++i)
{
while(q && v[i]!=v[q+1]) q=nxt[q];
if(v[i]==v[q+1]) ++q;
nxt[i]=q;
}
int qq=n-nxt[n];
printf("%d\n", qq);
for(i=1; i<=qq; ++i)
printf("%lld\n", v[i]);
return 0;
}