Pagini recente » Cod sursa (job #2404849) | Cod sursa (job #2321160) | Monitorul de evaluare | Cod sursa (job #3348027) | Cod sursa (job #3322251)
/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <bits/stdc++.h>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
long long a[500005],b[500005],lps[500005],n,i;
void prefixsufix(long long b[])
{
long long lg=0,i=1;
while(i<n)
{
if(b[lg]==b[i])
{
lg++;
lps[i]=lg;
i++;
}
else if(lg) lg=lps[lg-1];
else
{
lps[i]=0;
i++;
}
}
}
int main()
{
fin>>n;
for(i=1; i<=n; i++)
{
fin>>a[i];
}
for(i=2; i<=n; i++)
{
b[i-2]=a[i]-a[i-1];
}
/*for(i=0; i<=n; i++) fout<<b[i]<<" ";
fout<<'\n';*/
n--;
prefixsufix(b);
//for(i=0; i<n; i++) fout<<lps[i]<<" ";
fout<<n-lps[n-1]<<'\n';
for(i=0; i<n-lps[n-1]; i++)
{
fout<<b[i]<<'\n';
}
return 0;
}