Cod sursa(job #1248418)

Utilizator flamey19Savu Daniel flamey19 Data 25 octombrie 2014 09:45:58
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int N,G,W[10001],P[10001],s[10001],p,Smax,Max;
int main()
{
    f>>N>>G;
    Smax=0;
    for(int i=1; i<=N; i++)
    {
        f>>W[i]>>P[i];
        Smax+=W[i];
    }
    for(int i=1; i<=Smax; i++)
        s[i]=-1;
    s[0]=0;
    for(int i=1; i<=N; i++)
    {
      if(G-W[i])
        for(int j=G-W[i]; j>=0; j--)
            if(s[j]!=-1 && s[j+W[i]] < s[j]+P[i])
            {
                s[j+W[i]]=s[j]+P[i];
                if(s[j+W[i]]>Max)
                    Max=s[j+W[i]];
            }
    }
    g<<Max;
    return 0;
}