Pagini recente » Cod sursa (job #2063872) | Cod sursa (job #2447534) | Cod sursa (job #1987082) | Cod sursa (job #1242342) | Cod sursa (job #1184669)
#include <fstream>
using namespace std;
int n, urm[500003];
long long x[500003] , a[500003];
void determinaUrm()
{
int k = 0, i;
urm[1] = 0;
for (i = 2; i < n; i++)
{
while (k > 0 && a[k + 1] != a[i])
{
k = urm[k];
}
if (a[k + 1] == a[i])
{
k++;
}
urm[i] = k;
}
}
int main()
{
ifstream in("reguli.in");
ofstream out("reguli.out");
int i;
in >> n;
for (i = 0; i < n; i++)
{
in >> x[i];
}
for (i = 1; i <= n; i++)
{
a[i] = x[i] - x[i - 1];
}
determinaUrm();
out << n - urm[n - 1] - 1 << '\n';
for (i = 1; i < n - urm[n - 1]; i++)
{
out << a[i] << '\n';
}
in.close();
out.close();
return 0;
}