Pagini recente » Cod sursa (job #421508) | Monitorul de evaluare | Cod sursa (job #2878187) | Cod sursa (job #1985123) | Cod sursa (job #1204275)
#include <fstream>
using namespace std;
long long a[500020];
int pi[500020];
int n,m;
void R()
{
// freopen("reguli.in","r",stdin);
//scanf("%d",&n);
ifstream fin("reguli.in");
long long p,x,i;
//scanf("%d",&x);
fin>>n>>x;
for(i=1; i<n; i++)
{
p=x;
// scanf("%d",&x);
fin>>x;
a[i]=x-p;
}
n--;
}
void Prefix()
{
int i,k=0;
pi[1]=0;
for(i=2; i<=n; i++)
{
while(k>0 && a[k+1]!=a[i])
k=pi[k];
if(a[k+1]==a[i])
k++;
pi[i]=k;
}
m=n-pi[n];
}
int main()
{
R();
Prefix();
//freopen("reguli.out","w",stdout);
//printf("%d\n",m);
ofstream fout("reguli.out");
fout<<m<<"\n";
for(int i=1; i<=m; i++)
fout<<a[i]<<"\n";
//printf("%d\n",a[i]);
return 0;
}