Pagini recente » Cod sursa (job #1339845) | Cod sursa (job #533312) | Cod sursa (job #2878417) | Cod sursa (job #1941953) | Cod sursa (job #2462235)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
#define ll long long
#define cin fin
#define cout fout
/*
*/
const int NMAX=1e6;
int n;
ll d[NMAX];
int dp[NMAX];///lungimea celui mai lung prefix care este si sufix pentru 1...i
void read()
{
ll last, next;
cin>>n>>last;
n--;
for(int i=0; i<n; i++)
{
cin>>next;
d[i]=next-last;
last=next;
}
}
void computeLPS()
{
int i=1, j=0;
while(i<n)
{
if(d[i]==d[j])
{
j++;
dp[i]=j;
i++;
}
else
{
if(j)
j=dp[j-1];
else
i++;
}
}
}
void solve()
{
computeLPS();
ll answ=n-dp[n-1];
cout<<answ<<"\n";
for(int i=0; i<answ; i++)
cout<<d[i]<<"\n";
}
int main()
{
read();
solve();
return 0;
}