Cod sursa(job #261163)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 17 februarie 2009 21:57:50
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
//#include<algorithm>
#define INF 1001
//using namespace std;
int g,w,cmin[1001],uz[1001][1001];
struct gigel{
	int e,c;};
gigel a[1001];
void solve(){
    int i,j,k;
    scanf("%d%d",&g,&w);
    for(i=1; i<=g; ++i)
        scanf("%d%d",&a[i].e,&a[i].c);
    for(i=1; i<=w; ++i)
        cmin[i]=INF;
    for(i=1; i<=w; ++i)
        for(j=1; j<=g; ++j)
			if(/*a[j].e<=i&&*/cmin[i-a[j].e]!=-1&&!uz[i-a[j].e][j])
                if(a[j].c+cmin[i-a[j].e]<cmin[i]){
                    cmin[i]=a[j].c+cmin[i-a[j].e];
                    for(k=1; k<=g; ++k)
                        uz[i][k]=uz[i-a[j].e][k];
                    uz[i][j]=1;}
    printf("%d",cmin[w]);}
int main(){
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    solve();
    return 0;}