Cod sursa(job #3322251)

Utilizator DobrePetruDobre Petru Daniel DobrePetru Data 13 noiembrie 2025 10:56:31
Problema Reguli Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <bits/stdc++.h>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
long long a[500005],b[500005],lps[500005],n,i;
void prefixsufix(long long b[])
{
    long long lg=0,i=1;
    while(i<n)
    {
        if(b[lg]==b[i])
        {
            lg++;
            lps[i]=lg;
            i++;
        }
        else if(lg) lg=lps[lg-1];
        else
        {
            lps[i]=0;
            i++;
        }
    }
}
int main()
{
    fin>>n;
    for(i=1; i<=n; i++)
    {
        fin>>a[i];
    }
  
    for(i=2; i<=n; i++)
    {
        b[i-2]=a[i]-a[i-1];
    }  
    /*for(i=0; i<=n; i++) fout<<b[i]<<" ";
    fout<<'\n';*/
 n--;
prefixsufix(b);
 //for(i=0; i<n; i++) fout<<lps[i]<<" ";
 fout<<n-lps[n-1]<<'\n';
 for(i=0; i<n-lps[n-1]; i++)
 {
     fout<<b[i]<<'\n';
 }
    return 0;
}