Cod sursa(job #895527)

Utilizator alexandrul_21Niculescu Mihai alexandrul_21 Data 27 februarie 2013 11:41:42
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <stdio.h>
#define MAX_G 10000
using namespace std;
int N,G;
int P[MAX_G+5],V[MAX_G+5];
void PD(int k,int g,int p){
    int i,n=G-g,s;
    for(i=n;i>=0;i--){
        s=g+i;
//        if(V[i])
        if(P[s]<P[i]+p){
            P[s]=P[i]+p;
//            V[s]=k;
        }
    }
//    printf("intrat\n");
}
void write(){
    int i;
    for(i=0;i<=G;i++){
        printf("%d -> %d %d\n",i,P[i],V[i]);
    }
}
void Read(){
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    scanf("%d %d\n",&N,&G);
    int i,g,p;
    V[0]=-1;
    for(i=1;i<=N;i++){
        scanf("%d %d\n",&g,&p);
        PD(i,g,p);
    }
    fclose(stdin);
//    write();
//    for(i=G;i>=0;i++)
//        if(V[i]){
            printf("%d",P[G]);
            fclose(stdout);
//            return;
  //      }

}
int main()
{
    Read();
    return 0;
}