Pagini recente » Cod sursa (job #2093760) | Cod sursa (job #1768015) | Cod sursa (job #1623266) | Cod sursa (job #2508439) | Cod sursa (job #92652)
Cod sursa(job #92652)
#include <stdio.h>
#include <stdlib.h>
FILE *f,*g;
int *x,*a,n,an=0;
void citire(){
fscanf(f,"%d",&n);
x=(int*)malloc(n*sizeof(int));
a=(int*)malloc(n*sizeof(int));
for(int i=0;i<n;++i){
fscanf(f,"%d",&x[i]);
}
fclose(f);
}
int check(){
int k=0;
for(int i=1;i<n;++i,k++){
if(k>=an+1){
k=0;
}
if(x[i]!=x[i-1]+ ( ( (i)%(k+1) ) ? a[((i)%(k+1))] : a[k])){
return 0;
}
}
return 1;
}
void endgame(){
int i;
fprintf(g,"%d\n",an+1);
for(i=0;i<=an;++i){
fprintf(g,"%d\n",a[i]);
}
fclose(g);
exit(0);
}
void facere(){
for(int i=1;i<n;++i){
a[i-1]=x[i]-x[i-1];
an++;
}
for(an=1;an<n;++an){
if(check()){
endgame();
}
}
}
main(){
f=fopen("reguli.in","r");
g=fopen("reguli.out","w");
citire();
facere();
fprintf(g,"nu merge :-??");
fclose(g);
return 0;
}