Mai intai trebuie sa te autentifici.
Cod sursa(job #603606)
Utilizator | Data | 17 iulie 2011 17:27:08 | |
---|---|---|---|
Problema | Reguli | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <fstream>
using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");
long long x,y;
long long v[500000];
int p[500000],n,i,poz;
void prefix()
{
int k,i;
p[1]=0;
for (i=2; i<=poz; i++)
{
while (k>0 && v[k+1]!=v[i]) k=p[k];
if (v[k+1]==v[i]) k++;
p[i]=k;
}
g << poz-p[poz] << endl;
for (i=1; i<=poz-p[poz]; i++)
g << v[i] << '\n';
}
int main()
{
f >> n >> x;
for (i=1; i<n; i++)
{
f >> y;
v[++poz]=y-x;
x=y;
}
prefix();
}