Cod sursa(job #871124)

Utilizator miha88Popescu Mihaela miha88 Data 4 februarie 2013 14:50:38
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int a[10003][4],n,gr,i,j,p[10003],max1;
int main()
{
   f>>n>>gr;
   for(i=1;i<=n;i++)
        for(j=1;j<=2;j++)
            f>>a[i][j];
   for (i=1;i<=n;i++)
   {

        for(j=gr;j>=1;j--)
            if(p[j]!=0)
                if(j+a[i][1]<=gr)
                {
                    if(p[j+a[i][1]]<p[j]+a[i][2])
                        p[j+a[i][1]]=p[j]+a[i][2];
                    if(p[j+a[i][1]] > max1)
                        max1=p[j+a[i][1]];
                }
        if(p[a[i][1]]!=0)
        {
           if(p[a[i][1]]<a[i][2])
                p[a[i][1]]=a[i][2];
        }
        else
            p[a[i][1]]=a[i][2];
   }
    g<<max1;
    return 0;
}