Cod sursa(job #125079)

Utilizator alle_forever13Alexandra Retegan alle_forever13 Data 20 ianuarie 2008 11:15:38
Problema Inundatii Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasele 11-12 Marime 0.88 kb
#include<stdio.h>

#define input "inundatii.in"
#define output "inundatii.out"

#define dim 101

struct inund
{
	int x, y, z;
};

inund a[dim];

int n, min;

int schimb(int i, int j);

int main()
{
	FILE *in, *out;

	in = fopen (input, "r");
	out = fopen (output, "w");

	fscanf(in, "%d", &n);

	int i;

	for(i=1; i<=n; i++)

		fscanf(in, "%d%d%d", &a[i].x, &a[i].y, &a[i].z);

	for(i=1; i<=n/2; i++)

		min+=schimb(i, n-i+1);

	fprintf(out, "%d", min);

	return 0;

}

int schimb(int i, int j)
{
	int m, cont=0;

	while(1!=2)
	{
		m=((a[i].x-a[j].x)/2)+1;

		a[i].x-=m;
		a[j].x+=m;

		cont+=m;

		m=((a[i].y-a[j].y)/2)+1;

		a[i].y-=m;
		a[j].y+=m;

		cont+=m;

		m=((a[i].z-a[j].z)/2)+1;

		a[i].z-=m;
		a[j].z+=m;

		cont+=m;

		if(a[i].x<a[j].x && a[i].y<a[j].y && a[i].z<a[j].z)

			break;

	}

	return cont*2;

}