Pagini recente » Cod sursa (job #1590470) | Cod sursa (job #275318) | Cod sursa (job #121674) | Cod sursa (job #2097255) | Cod sursa (job #852844)
Cod sursa(job #852844)
#include <fstream>
#include <cstring>
using namespace std;
long long x, xlast, i, n, k, pi[500010];
long long 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;
}