Cod sursa(job #669983)

Utilizator CS-meStanca Marian Ciprian CS-me Data 28 ianuarie 2012 09:34:38
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>
#include<string.h>
FILE *fin=fopen("rucsac.in","r");
FILE *fout=fopen("rucsac.out","w");
int i,j,n,w,p,g,v[10010],profit;

int main(){

    fscanf(fin,"%d %d",&n,&g);

    memset(v,-1,sizeof(v));

    for(i=1;i<=n;i++){
        fscanf(fin,"%d %d",&w,&p);

        for(j=g;j>=0;j--){
            if(v[j]>=0){
                if(j+w<=g){
                    profit=v[j]+p;
                    if(profit>v[j+w])
                        v[j+w]=profit;
                }
            }
            if(j==0){
                if(p>v[w])
                    v[w]=p;
            }
        }
    }

    fprintf(fout,"%d",v[g]);


return 0;
}