Cod sursa(job #860967)

Utilizator kiwiIonescu Maria kiwi Data 20 ianuarie 2013 20:58:07
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>
#include<stdio.h>
#define Gmax 10010
#define Nmax 5010
using namespace std;
int A[Gmax],p,u,i,j,G[Nmax],P[Nmax],n,g,sol;
 
int main()
{
    
    freopen("rucsac.out","w",stdout);
     
    ifstream f("rucsac.in");
    
    f>>n>>g;
    for( i = 1 ; i <= n ; i++ )

    f>>G[i]>>P[i];
     
    for( i = 1 ; i <= n ; i++ )
        for( j = g ; j >= 0 ; j-- )
            if( (A[j] || j == 0) && j + G[i] <= g && A[j+G[i]] < A[j] + P[i] ) 
                A[j+G[i]] =  A[j] + P[i] ;
     
    /*sol = 0 ; 
     
    for( i = 1 ; i <= g ; i++ )
        if( A[i] > sol ) sol = A[i] ;*/
     
    printf("%d",A[g]);
     
    return 0 ; 
}