Cod sursa(job #853249)

Utilizator alex99Chelba Alexandru alex99 Data 12 ianuarie 2013 11:19:42
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include<fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int w[5001],p[5001],i,n,G,aux,ok,j;
float s1,s;
int main()
{
    f>>n>>G;
    for(i=1;i<=n;i++)
    f>>w[i]>>p[i];
    do
    {
        ok=1;
        for(i=1;i<n;i++)
        if((float)p[i]/w[i]<(float)p[i+1]/w[i+1])       {aux=p[i];
                                                        p[i]=p[i+1];
                                                        p[i+1]=aux;
                                                        aux=w[i];
                                                        w[i]=w[i+1];
                                                        w[i+1]=aux;
                                                        ok=0;}
    }while(ok==0);
    //for(i=1;i<=n;i++)
    //g<<w[i]<<" "<<p[i]<<endl;
    s=0; s1=0;
    for(i=1;i<=n;i++) {s=s+w[i]; s1=s1+p[i];
    if(s>G) break;}
    if(i>=n+1) g<<s1<<" ";
    else
    s1=s1-p[i]; s=s-w[i]; s1=s1+(G-s)*p[i]/w[i];
    g<<(int)s1<<" ";
    f.close();
    g.close();
    return 0;
}