Cod sursa(job #1051475)

Utilizator sk8ervinMaftei Ervin sk8ervin Data 10 decembrie 2013 08:25:05
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 kb
#include <iostream>
#include<fstream>
using namespace std;
/*int main()
{
    int i,j;
    cin>>n;
    for(i=1;i<=n;i++)cin>>v[i];
    S[0]=-1;
    for(i=0;i<=n;i++)
        for(j=0;j<=1000;j++)
            if(S[j]!=0&&i>S[j]&&S[j+v[i]]==0)S[j+v[i]]=i;
    for(i=1;i<=1000;i++)if(S[i]!=0)cout<<i<<" ";
    int x,p;cout<<"\n";
    cout<<"x=";cin>>x;
    p=S[x];
    while(p!=-1)
    {
        cout<<v[p]<<" ";
        x=x-v[p];
        p=S[x];
    }
    return 0;
}
*/
ifstream f("cad.in");
ofstream g("cad.out");
/*int main()
{
    int i,j;
    f>>n;
    for(i=1;i<=n;i++){f>>v[i];SS+=v[i];}
    S[0]=-1;
    for(i=0;i<=n;i++)
        for(j=0;j<=SS;j++)
            if(S[j]!=0&&i>S[j]&&S[j+v[i]]==0)S[j+v[i]]=i;
    int x,p;
    for(j=SS/2;j>=0;j--)if(S[j]!=0){g<<j;g<<"\n"<<SS-j;break;}
    return 0;
}
*/
int n,k,i,gg,p,j,b[10001];
int main ()
{
    ifstream f("rucsac.in");
    ofstream g("rucsac.out");
    f>>n>>k;
    for(i=1; i<=n; i++)
    {
        f>>gg>>p;
        for(j=k; j>0; j--)
            if(gg<=j)
                if(b[j-gg]+p>b[j])
                    b[j]=b[j-gg]+p;
    }
    g<<b[k];
    return 0;
}