Pagini recente » Cod sursa (job #2929921) | Cod sursa (job #970998) | Cod sursa (job #1320254) | Cod sursa (job #2417167) | Cod sursa (job #852841)
Cod sursa(job #852841)
#include <fstream>
#include <cstring>
using namespace std;
int x, xlast, i, n, k, pi[500010];
int a[500010];
void prefix()
{
k = 0;
for(i = 2; i <= n; i++)
{
while(k and a[i] != a[k+1]) k = pi[k];
if(a[i] == a[k+1]) k++;
pi[i] = k;
}
}
int main()
{
ifstream fi("reguli.in");
ofstream fo("reguli.out");
fi >> n;
for(i = 1; i <= n; i++)
{
xlast = x;
fi >> x;
if(i > 1) a[i-1] = x - xlast;
}
n--;
prefix();
k = n - pi[n];
fo << k << "\n";
for(i = 1; i <= k; i++) fo << a[i] << "\n";
return 0;
}