Cod sursa(job #2450415)
| Utilizator | Data | 23 august 2019 11:42:58 | |
|---|---|---|---|
| Problema | Reguli | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");
long long sol[500005],n,a,b,i,d[500005],k,m,j,nr_sol;
int main()
{
f>>n>>a;
for(i=2; i<=n; ++i)
{
f>>b;
sol[i-2]=b-a;
a=b;
}
d[0]=0;
for(i=1; i<n-1; ++i)
{
k=d[i-1];
while(k>0 && sol[i]!=sol[k])
{
k=d[k-1];
}
if(sol[i]==sol[k])
{
k++;
}
d[i]=k;
}
m=n-1;
nr_sol=m-d[m-1];
g<<nr_sol<<'\n';
for(i=0; i<nr_sol; ++i)
{
g<<sol[i]<<'\n';
}
return 0;
}
