Cod sursa(job #117278)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 21 decembrie 2007 07:21:12
Problema Bilute Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream.h>
#include <math.h>

struct alabala
{
     long Ci,Li;
};

typedef struct alabala ala;

long long S;
ala a[30001];
long n,poz;

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

void citire()
{
   fin>>n;
   for (long i=0 ; i<n ; i++)
       fin>>a[i].Ci>>a[i].Li;
   fin.close();
}

void afla()
{
   for (long p=1;p<n;p++)
       S+=a[p].Ci*(p);
   S-=a[0].Ci*a[0].Li;
   poz=1;

   for (long i=1;i<n;i++)
   {
   long long S1=0;
      for (long j=0;j<i;j++)
	   S1+=a[j].Ci*fabs(((j)-(i)));
     for (long y=i+1;y<n;y++)
	   S1+=a[y].Ci*fabs(((y)-(i)));
     if ((S1-(a[i].Ci*a[i].Li))<S)
     {
	poz=i+1;
	S=S1-(a[i].Ci*a[i].Li);
     }
   }
for (long l=0;l<n;l++)
    S+=a[l].Ci*a[l].Li;
}

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