Cod sursa(job #2353172)
Utilizator | Data | 23 februarie 2019 22:30:07 | |
---|---|---|---|
Problema | Reguli | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll X[500010];
int P[500010],n;
int main(){
ifstream cin("reguli.in");
ofstream cout("reguli.out");
cin>>n;
int p=0,l=n-1;
for(int i=0;i<n;i++){
cin>>X[i];
if(i){
X[i-1]=X[i]-X[i-1];
if(i>=2){
while(p && X[i-1]!=X[p]){
p=X[p-1];
}
if(X[i-1]==X[p]){
p++;
}
P[i]=p;
}
}
}
l-=P[l];
cout<<l<<'\n';
for(int i=0;i<l;i++)cout<<X[i]<<'\n';
return 0;
}