Pagini recente » Cod sursa (job #464904) | Cod sursa (job #3315468) | Cod sursa (job #117657) | Cod sursa (job #467616) | Cod sursa (job #3322162)
#include <bits/stdc++.h>
#define ll long long
#define pb(x) push_back(x)
using namespace std;
ifstream fin ( "reguli.in" ) ;
ofstream fout ( "reguli.out" ) ;
const int nmax = 5e5 ;
int pi[nmax+5];
int nxt()
{
int x;
fin >> x;
return x;
}
void les(vector<int>s)
{
int n = s.size();
int i = 1 , lg = 0 ;
while ( i < n )
{
if ( s[lg] == s[i] )
pi[i++]=++lg;
else if ( lg )
lg = pi[lg-1];
else
pi[i++]=0;
}
}
signed main()
{
int n ;
fin >> n ;
int prevx = nxt();
vector<int>sum;
for ( int i = 1 ; i < n ; ++ i )
{
int y = nxt();
sum.pb(y-prevx); prevx=y;
}
--n;
les(sum);
if ( !pi[n-1] )
{
fout << n << '\n';
for ( auto it : sum )
fout << it << ' ' ;
return 0;
}
fout << n - pi[n-1] << '\n';
for ( int i = 0 ; i < n - pi[n-1] ; ++ i )
fout << sum[i] << ' ' ;
return 0;
}