Cod sursa(job #669984)

Utilizator CS-meStanca Marian Ciprian CS-me Data 28 ianuarie 2012 09:37:24
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 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,max;

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(profit>max){
                            max=profit;
                        }
                    }
                }
            }
            if(j==0){
                if(p>v[w]){
                    v[w]=p;
                    if(p>max){
                            max=p;
                        }
                }
            }

        }
    }

    fprintf(fout,"%d",max);


return 0;
}