Cod sursa(job #2288959)

Utilizator aditzu7Adrian Capraru aditzu7 Data 24 noiembrie 2018 09:52:28
Problema Reguli Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.48 kb
#include <stdio.h>


using namespace std;
FILE*f=fopen("reguli.in","r");
FILE*g=fopen("reguli.out","w");
int k,p[500005],s[500005],i,v[500005],n;
int main()
{
fscanf(f,"%d",&n);
for(i=1;i<=n;i++){
    fscanf(f,"%d",&v[i]);
    if(i>=2) s[i-1]=v[i]-v[i-1];



}
k=0;
for(i=2;i<=n;i++){
    while(k&&s[k+1]!=s[i]) k=p[k];
    if(s[k+1]==s[i]) k++;
    p[i]=k;

}
fprintf(g,"%d\n",n-1-p[n-1]);
for(i=1;i<=n-1-p[n-1];i++) fprintf(g,"%d\n",s[i]);


    return 0;
}