Cod sursa(job #361656)

Utilizator APOCALYPTODragos APOCALYPTO Data 6 noiembrie 2009 10:05:45
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<iostream.h>
struct data{
    int p;
    int g;
    int rata;
    int ind;
};
data v[100],aux,sol[100];

int main()
{int n,G,i,terminat=0,k,profit=0,acum=0;



cin>>n;
cin>>G;
for(i=1;i<=n;i++)
  {cin>>v[i].p>>v[i].g;
  v[i].rata=v[i].p/v[i].g;
  v[i].ind=i;}
terminat=0;
while(!terminat)
{ terminat=1;
for(i=1;i<=n-1;i++)
  if(v[i].rata<v[i+1].rata)
    {aux=v[i];
    v[i]=v[i+1];
    v[i+1]=aux;
    terminat=0;
    }
}
while(acum+v[k].g<=G)
{k++;
    sol[k]=v[k];
    profit+=v[k].p;
}
if(acum<G)
   {k++;
   sol[k]=v[k];
   profit+=(G-acum)*v[i].rata;
   }
cout<<profit<<'\n';
for(i=1;i<=k;i++)
  cout<<sol[i].ind<<" ";
return 0;
}