Pagini recente » Cod sursa (job #638854) | Cod sursa (job #1098708) | Cod sursa (job #653826) | Cod sursa (job #385805) | Cod sursa (job #785279)
Cod sursa(job #785279)
#include <fstream>
using namespace std;
const long long Nmax = 500010;
long long A[Nmax],Sift[Nmax];
int N,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';
}