Pagini recente » Cod sursa (job #1440623) | Cod sursa (job #1868070) | Cod sursa (job #2164158) | Cod sursa (job #2092402) | Cod sursa (job #2460454)
#include <bits/stdc++.h>
using namespace std;
long long n, i, v[500005], kmp[500005], j;
int main() {
ifstream fin("reguli.in");
ofstream fout("reguli.out");
fin >> n >> v[0];
for(i = 1; i < n; ++i)
fin >> v[i], v[i-1] = v[i] - v[i-1];
for(i = 1, j = 0, --n; i < n; ++i)
if(v[i] == v[j]) kmp[i] = ++j;
else kmp[i] = j = (v[i] == v[0]);
for(i = n - 1; i > 0; --i)
if(kmp[i] && (i+1) % (i + 1 - kmp[i]) == 0) break;
n = (i != 0) ? (i - kmp[i]) : (n-1); fout << n+1;
for(i = 0; i <= n; ++i)
fout.put('\n') << v[i];
}