Pagini recente » Cod sursa (job #1543028) | Cod sursa (job #221803) | Cod sursa (job #1807684) | Cod sursa (job #34975) | Cod sursa (job #3321740)
#include <bits/stdc++.h>
using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");
const int nmax=2e6+5;
int s[nmax],n;
int lps[nmax],a[nmax];
void create_lps(int n)
{
int i=1, lg=0;
lps[0]=0;
while ( i<n )
{
if ( s[i]==s[lg] )
{
lg++;
lps[i]=lg;
i++;
}
else if ( lg ) lg=lps[lg-1];
else
{
lps[i]=0;
i++;
}
}
}
vector <int> rez;
int main()
{
f >> n;
for (int i=0; i<n; i++ )
f >> a[i];
for (int i=0; i<n-1; i++ )
s[i]=a[i+1]-a[i];
create_lps(n-1);
int rez=(n-1)-lps[n-2];
for (int i=0; i<rez; i++ )
g << s[i] << " ";
return 0;
}