Pagini recente » Istoria paginii utilizator/gbrl_ursu2 | Diferente pentru runda/test193120947281 intre reviziile 2 si 3 | Profil hristina_andreea | Rating Neagoe Mihai (neagoemihai) | Cod sursa (job #527424)
Cod sursa(job #527424)
#include <stdio.h>
#define maxn 500010
int i,N;
int v[maxn],pi[maxn];
void citire()
{
scanf("%d",&N);
for(i=1;i<=N;i++)
scanf("%d",&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("%d\n",v[i]);
}
int main()
{
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
citire();
prelucrare();
perioada();
afisare();
}