Cod sursa(job #1327567)

Utilizator GooggaIoana Iaru Googga Data 26 ianuarie 2015 20:53:59
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include<algorithm>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int main() {
    int n,g,maxim,pmax,prof[10005]={0};
    bool viz[10005]={0};
   in>>n>>g;
  viz[0]=1;
    maxim=0;
   for(int i=1;i<=n;i++)
    {
       int x,y;
        in>>x>>y;
        int ok=0;
        for(int j=g;j>=0;j--)
           if(viz[j]==1&& j+x<=g)
            {
                if(ok==0)
                {
                  maxim=max(maxim,j+x);
                    ok=1;
                }
           viz[j+x]=1;
              prof[j+x]=max(prof[j+x],prof[j]+y);
            }
    }
    pmax=0;
    for(int i=0;i<=maxim;i++)
    {
        if(pmax<prof[i])
            pmax=prof[i];
    }
    out<<pmax;
    in.close();
    out.close();
    return 0;
}