Cod sursa(job #458899)

Utilizator LauraTudorTudor Laura LauraTudor Data 26 mai 2010 21:07:02
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
#include<stdlib.h>
int g,w,e[10001],c[10001];
int castig[10001][10001];
int main(){
	int i,j,cost=0;
	FILE *fin=fopen("energii.in","r");
	fscanf(fin,"%d",&g);
	fscanf(fin,"%d",&w);
	for(i=1;i<=g;i++)
		fscanf(fin,"%d %d",&e[i],&c[i]);
	int sum=0;
	for(i=1;i<=g;i++)
	{
		sum+=e[i];
		cost+=c[i];}
	for(i=0;i<=cost;i++)
		for(j=0;j<=g;j++){

			if((i==0)||(j==0))
				castig[i][j]=0;
			else{
				if(castig[i-1][j-c[i]]+e[i]>castig[i-1][j])
					castig[i][j]=castig[i-1][j-c[i]]+e[i];
				else
					castig[i][j]=castig[i-1][j];
			}
		}

	FILE *fout=fopen("energii.out","w");
	if(sum<w)
		fprintf(fout,"-1\n");
	for(i=0;i<=g;i++){
		for(j=0;j<=cost;j++)
			printf("%d ",castig[i][j]);
		printf("\n");
	}
	return 0;
}