Pagini recente » Profil Rares_gradinaru | Cod sursa (job #1307208) | Monitorul de evaluare | Cod sursa (job #227547) | Cod sursa (job #1311220)
# include <bits/stdc++.h>
using namespace std;
ifstream fi("reguli.in");
ofstream fo("reguli.out");
const int nmax = 5e5 + 5;
long long v[nmax];
int s[nmax];
int main(void)
{
int n;
long long x,y;
fi>>n>>y;
for (int i=1;i<n;++i) fi>>x,s[i]=x-y,y=x;
for (int i=2,k=0;i<n;++i)
{
while (k && s[k+1] != s[i]) k = v[k];
k += (s[k+1] == s[i]);v[i] = k;
}
--n;
fo << (n - v[n]) << '\n';
for (int i=1;i<=n-v[n];++i) fo << s[i] << '\n';
return 0;
}