Pagini recente » Cod sursa (job #1153112) | Cod sursa (job #1558834) | Cod sursa (job #1759436) | Cod sursa (job #2113825) | Cod sursa (job #2516849)
#include <iostream>
#include <fstream>
#define MAX 500010
using namespace std;
typedef long long ll;
ll n;
ll x[MAX],a[MAX],pi[MAX];
void calc_pi(ll v[MAX],ll n){
pi[1]=0;
ll la=0;
for(ll i=2;i<=n;)
if(v[i]==v[la+1])pi[i++]=++la;
else
if(la!=0)la=pi[la];
else pi[i++]=0;
}
int main()
{
ifstream f ("reguli.in");
ofstream g ("reguli.out");
f>>n;
for(ll i=1;i<=n;i++)f>>x[i];
for(ll i=1;i<n;i++)a[i]=x[i+1]-x[i];
calc_pi(a,n-1);
// for(ll i=1;i<n;i++)
// cout<<a[i]<<" ";
// cout<<'\n';
// for(ll i=1;i<n;i++)cout<<pi[i]<<" ";
// cout<<n-1<<" "<<pi[n-1];
if(pi[n-1]>=(n-1)/2){
ll per=n-1-pi[n-1];
g<<per<<'\n';
for(ll i=1;i<=per;i++)
g<<a[i]<<'\n';
} else {
g<<n-1<<'\n';
for(ll i=1;i<=n-1;i++)
g<<a[i]<<'\n';
}
f.close ();
g.close ();
return 0;
}