Pagini recente » Cod sursa (job #953356) | Cod sursa (job #1916192) | Monitorul de evaluare | Cod sursa (job #2674550) | Cod sursa (job #114028)
Cod sursa(job #114028)
#include<stdio.h>
#include<math.h>
int x,v[25001],s[25001],n;
int calc(){
/*int i;
for(i=1;x;++i)
x=x-i;
n=i;
*/
int a;
a=1+8*x;
return (1+sqrt(a))/2;
}
void afis(){
int i;
for(i=1;i<=n;++i)
printf("%d ",s[i]);
}
int valid(){
int k=n;
for(int i=2;i<n;i++)
for(int j=i+1;j<=n;j++){
if(v[k]!=s[i]+s[j])
return 0;
k++;
}
return 1;
}
int main(){
freopen("sume.in","r",stdin);
freopen("sume.out","w",stdout);
int i,j,p;
scanf("%d",&p);
for(i=1;i<=p;++i)
scanf("%d",&v[i]);
x=p;
n=calc();
for(i=1;i<=v[1];++i){
s[1]=i;
for(j=2;j<=n;++j)
s[j]=v[j-1]-i;
if(valid()){
printf("%d\n",n);
afis();
fclose(stdin);
fclose(stdout);
return 0;
}
}
printf("-1");
fclose(stdin);
fclose(stdout);
return 0;
}