Pagini recente » Cod sursa (job #1815930) | Cod sursa (job #2236160) | Cod sursa (job #2889093) | Statistici Brezoiu Ana-Maria-Claudia (anamaria_brezoiu) | Cod sursa (job #1164411)
#include <fstream>
using namespace std;
const int NMax = 500010;
int N;
long long a[NMax];
int pi[NMax];
void Read()
{
ifstream f("reguli.in");
f >> N;
for (int i = 1; i <= N; ++ i)
f >> a[i];
f.close();
}
void Make_Pi()
{
int k = 0;
pi[1] = 0;
for (int i = 2; i < N; ++ i)
{
while (k > 0 && a[k + 1] != a[i])
k = pi[k];
if (a[k+1] == a[i])
++k;
pi[i] = k;
}
}
void Solve()
{
for (int i = 1; i < N; ++ i)
a[i] = a[i + 1] - a[i];
Make_Pi();
}
void Write()
{
ofstream g("reguli.out");
g << N - 1 - pi[N - 1] << "\n";
for (int i = 1, limit = N - 1 - pi[N - 1]; i <= limit; ++ i)
g << a[i] << "\n";
g.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}