Cod sursa(job #125290)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 20 ianuarie 2008 12:25:06
Problema Inundatii Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasa a 10-a Marime 1.01 kb
#include <fstream.h>
#include <math.h>

ifstream fin("inundatii.in");
ofstream fout("inundatii.out");

struct cacat
{
  int a,b,c;
};

typedef struct cacat ct;
ct sir[50010];

int n,S;

void citire()
{
   fin>>n;
      for (int i=0;i<n;i++)
	fin>>sir[i].a>>sir[i].b>>sir[i].c;
   fin.close();
}

void suma()
{
   long Smin=1412551254;

   for (int i=sir[n-1].a;i<=sir[0].a;i++)
   {
      long Se=0;
      for (int j=0;j<n;j++)
	   Se+=fabs(sir[j].a-i-j);
   if (Se<Smin)
      Smin=Se;
   }
   S+=Smin;
   Smin=235434532;

   for (int k=sir[n-1].b ; k<sir[0].b; k++)
   {
      long Se=0;
	for (int u=0;u<n;u++)
	   Se+=fabs(sir[u].b-k-u);
      if (Se<Smin)
	Smin=Se;
   }
   S+=Smin;

   Smin=5432632456;

   for (int w=sir[n-1].c; w<sir[0].c; w++)
   {
       long Se=0;
	  for (int t=0;t<n;t++)
	     Se+=fabs(sir[t].c-w-t);
   if (Se<Smin)
      Smin=Se;
   }
   S+=Smin;
}

int main()
{
   citire();
   suma();
   fout<<S<<"\n";
   fout.close();
   return 0;
}