Pagini recente » Cod sursa (job #2683447) | Cod sursa (job #796447) | Cod sursa (job #1876159) | Cod sursa (job #368706) | Cod sursa (job #785281)
Cod sursa(job #785281)
#include <fstream>
using namespace std;
const int Nmax = 500010;
long long A[Nmax];
int Sift[Nmax],N;
long long a,b;
ifstream F("reguli.in");
ofstream G("reguli.out");
int main()
{
F>>N>>a;
for (int i=1;i<N;++i)
F>>b,A[i]=b-a,a=b;
int q=0;
for (int i=2;i<N;++i )
{
while ( q > 0 && A[i]!=A[q+1] ) q = Sift[q];
if ( A[i]==A[q+1] ) ++q;
Sift[i] = q;
}
G<<N-Sift[N-1]-1<<'\n';
for (int i=1;i<N-Sift[N-1];++i)
G<<A[i]<<'\n';
}