Cod sursa(job #125342)

Utilizator hazegirlCatalina Predoi hazegirl Data 20 ianuarie 2008 12:36:17
Problema Inundatii Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasa a 10-a Marime 0.73 kb
//inundatii
#include<fstream.h>
long int n,x[50001],y[50001],z[50001],a=0,b=0,c=0,d;

long int mijloc(long int p, long int q)
{m=(p+q)/2;
if(x[m]<=a && y[m]<=b && z[m]<=c)
	if(x[m+1]>=a && y[m+1]>=b && z[m+1]>=c)
		return m;
	else return mijloc(m+1,q);
else return mijloc(p,m);
}

int main()
{long int i,m;
ifstream f("inundatii.in");
ofstream g("inundatii.out');
f>>n;
for(i=1;i<=n;i++)
	{f>>x[i]>>y[i]>>z[i];
	 a+=x[i]; b+=y[i]; c+=z[i];
}
a/=n; b/=n; c/=n;
m=mijloc(1,n);
for(i=1;i<=m;i++)
	{d+=(a-x[i]); d+=(b-y[i]); d+=(c-z[i]);
	 d+=3*i;
	}
for(i=m+1; i<=n;i++)
	{d+=(x[i]-a); d+=(y[i]-b); d+=(z[i]-c]);
	d+=3*(i-m);
	}
if(m>(n-m)) d-=(3*m); else d-=3*(n-m);
g<<d<<'\n';
f.close();
g.close();
return 0;
}