Cod sursa(job #1340892)

Utilizator PavalRazvanPaval Razvan PavalRazvan Data 12 februarie 2015 09:43:50
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream d("rucsac.out");
int a[3][5001],n,g;
int main()
{   int i,j,s=0;
    f>>n>>g;
    float b[n+1],a1,a2,m=0,aux,c1;
    for(i=1;i<=n;i++)

     {f>>a[1][i];
     f>>a[2][i];}
    for(i=1;i<=n;i++)
    {
        a1=(float)(a[1][i]);
        a2=(float)(a[2][i]);
        b[i]=a2/a1;

    }
    for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
   {
       if(b[i]>b[j])
       {
           aux=b[i];
           b[i]=b[j];
           b[j]=aux;

           aux=a[1][i];
           a[1][i]=a[1][j];
           a[1][j]=aux;

           aux=a[2][i];
           a[2][i]=a[2][j];
           a[2][j]=aux;
       }
   }
      for(i=1;i<=n;i++)
  {
      if(g-a[1][i])
      {
          g=g-a[1][i];
          s=s+a[2][i];
      }
      if(g==0)
      {
          d<<s;
          return 0;
      }
      if(g-a[1][i]<0)
      {
         //a2=(float)a[1][i];
         c1=g;
         s=s+(b[i]/c1);
      }
  }

    d<<s;


    return 0;
}