Pagini recente » Cod sursa (job #694532) | Cod sursa (job #1976571) | Cod sursa (job #321151) | Cod sursa (job #713635) | Cod sursa (job #1305760)
#include <fstream>
using namespace std;
const int MAX_N = 500002;
int N;
int Pi[MAX_N];
long long a[MAX_N], v[MAX_N];
int main() {
ifstream f("reguli.in");
ofstream g("reguli.out");
f >> N;
for(int i = 0; i < N; ++i) {
f >> a[i];
if(i > 0)
v[i] = a[i] - a[i - 1];
}
for(int i = 2; i < N; ++i) {
int p = Pi[i - 1];
while(p && v[p + 1] != v[i])
p = Pi[p];
if(v[p + 1] == v[i])
++p;
Pi[i] = p;
}
int ans = N - 1;
while(Pi[ans])
ans -= Pi[ans];
g << ans << "\n";
for(int i = 1; i <= ans; ++i)
g << v[i] << "\n";
f.close();
g.close();
return 0;
}