Cod sursa(job #137524)

Utilizator bacerandreiBacer Andrei bacerandrei Data 17 februarie 2008 12:33:25
Problema Garaj Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasa a 10-a Marime 1.06 kb
#include<fstream.h>
long long n,m,c[100000],t[100000],nr,i,gasit,timp,j;


void quik(long long p,long long q)
{
  long long aux,i,j,t1;
   if(p<q)
    {
     i=p;
     j=q;
     t1=1;
      do
       {
	if(t[i]>t[j])
	 {
	  aux=t[i];
	  t[i]=t[j];
	  t[j]=aux;
	  aux=c[i];
	  c[i]=c[j];
	  c[j]=aux;
	  t1=!t1;
	 }
       if(t1)
	j--;
       else
	i++;
      }while(i!=j);
   quik(p,i-1);
   quik(i+1,q);
  }
}



int main()
{
  ifstream f("garaj.in");
  ofstream g("garaj.out");
   f>>n>>m;
  for(i=1;i<=n;i++)
   f>>c[i]>>t[i];
  quik(1,n);
   for(i=1;i<=n;i++)
    if(m%c[i]==0)
     {
      nr=1;
      timp=2*(m/c[i])*t[i];
      gasit=1;
     }
    i=0;
   while(!gasit)
    {
     i++;
     nr++;
      m=m-(m/c[i])*c[i];
      if(timp<(m/c[i])*t[i])
       timp=timp+(m/c[i])*t[i];
      else
       timp=timp;
       for(j=i+1;j<=n;j++)
	if(m%c[j]==0)
	 {
	  nr++;
	  if(timp<(m/c[j])*t[j])
	   timp=timp+(m/c[j])*t[j];
	  else
	   timp=timp;
	  gasit=1;
	 }
      }
    g<<timp<<" "<<nr;
 return 0;
}