Pagini recente » Cod sursa (job #2208938) | Cod sursa (job #954839) | Istoria paginii utilizator/georgesandu2001111 | Cod sursa (job #1423451) | Cod sursa (job #1633018)
#include <fstream>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
int N;
long v[500005];
int p[500005];
int main()
{
fin >> N;
for(int i = 1; i <= N; ++i)
{
fin >> v[i];
v[i - 1] = v[i] - v[i - 1];
}
--N;
for(int i = 2, q = 0; i <= N; ++i)
{
while(q != 0 && v[q + i] != v[i])
q = p[q];
if(p[q + i] == p[i])
q++;
p[i] = q;
}
fout << N - p[N] << '\n';
for(int i = 1; i <= N - p[N]; ++i)
fout << p[i] << "\n";
return 0;
}