Cod sursa(job #2259261)

Utilizator TeodorAxinteAxinte Teodor TeodorAxinte Data 13 octombrie 2018 11:02:26
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int oo=1000000000;
int n,i,j,val,g,G,p[10010],profit;
bitset<10010> used;
int main()
{
    fin>>n>>G;
    used[0]=1;
    for(;n;n--)
    {
        fin>>g>>val;
        used[0]=1;
        if(g>G)continue;
        for(j=G,i=G-g;i>=0;i--,j--)
        if(used[i])
        {
            int profit=p[i]+val;
            if(!used[j])
            {
                p[j]=profit;
                used[j]=1;
            }
            else
                if(profit>p[j])
                    p[j]=profit;

        }
    }
    profit=0;
    for(i=0;i<=G;i++)
        profit=max(profit,p[i]);
    fout<<profit;
    return 0;
}