Pagini recente » Cod sursa (job #1965512) | Cod sursa (job #394088) | Cod sursa (job #390239) | Cod sursa (job #1682499) | Cod sursa (job #757631)
Cod sursa(job #757631)
#include<stdio.h>
#include<stdlib.h>
long int suma(long int *x,long int N,long int DX){
long int m=0,s=0,s1=0,i,x1,x2;
for(i=0;i<N;i++)
m+=x[i];
m=m/N;
for(i=0;i<N;i++){
s+=abs(x[i]-m);
s1+=abs(x[i]-m-1);
}
if(s>s1) x2=x1=s1;
else x2=x1=s;
for(i=1;i<DX;i++){
s=s1=0;
for(i=0;i<N;i++){
s+=abs(x[i]-x1+1);
s1+=abs(x[i]-x2-1);
}
if(s>s1) x2++;
else x1--;
}
for(i=0;i<N;i++){
s+=abs(x[i]-x1);
s1+=abs(x[i]-x2);
}
if(s>s1) s1;
else s;
}
int main(){
long int N,DX,DY,*x,*y,x1,x2,y1,y2,i,s;
FILE *f=fopen("tribute.in","r"),*g=fopen("tribute.out","w");
fscanf(f,"%ld %ld %ld",&N,&DX,&DY);
x=malloc(N*sizeof(int));
y=malloc(N*sizeof(int));
for(i=0;i<N;i++)
fscanf(f,"%ld %ld",&x[i],&y[i]);
s=suma(x,N,DX)+suma(y,N,DY);
fprintf(g,"%ld",s);
fclose(f);
fclose(g);
return 0;
}