Pagini recente » Rating Vlad Andrei (VladAndrei06) | Cod sursa (job #2045165) | Cod sursa (job #2841044) | Cod sursa (job #1112499) | Cod sursa (job #527425)
Cod sursa(job #527425)
#include <stdio.h>
#define maxn 500010
#define ll long long
int i,N;
ll v[maxn],pi[maxn];
void citire()
{
scanf("%d",&N);
for(i=1;i<=N;i++)
scanf("%lld",&v[i]);
}
void prelucrare()
{
for(i=1;i<=N-1;i++)
v[i]=v[i+1]-v[i];
N--;
}
void perioada()
{
int k=0;
for(i=2;i<=N;i++)
{
while(k>0 && v[k+1]!=v[i])
k=pi[k];
if(v[k+1]==v[i])
k++;
pi[i]=k;
}
}
void afisare()
{
N-=pi[N];
printf("%d\n",N);
for(i=1;i<=N;i++)
printf("%lld\n",v[i]);
}
int main()
{
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
citire();
prelucrare();
perioada();
afisare();
}