Pagini recente » Cod sursa (job #1102568) | Cod sursa (job #1750694) | Cod sursa (job #286621) | Cod sursa (job #2982057) | Cod sursa (job #1880862)
#include <bits/stdc++.h>
#define NN 500005
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
int n,a[NN],x;
int main()
{
fin >> n;
fin >> x;
for (int i = 2,y;i <= n; ++i)
{
fin >> y;
a[++a[0]] = y - x;
x = y;
}
vector<int>pi(a[0] + 1,0);
int k = 0;
for(int i = 2;i <= a[0];++i)
{
while (k && a[k+1] != a[i])
k = pi[k];
if (a[k+1] == a[i])
k++;
pi[i] = k;
}
int D = 0,p_start;
for (int i = a[0]; i>=0 && !D; --i)
{
p_start = i - pi[i];
if (pi[i] % p_start == 0 && pi[i])
D = p_start;
}
fout << D << "\n";
for (int i = 1; i <= D;++i)
fout << a[i] << "\n";
return 0;
}