Cod sursa(job #720752)

Utilizator johnny2008Diaconu Ion johnny2008 Data 22 martie 2012 21:03:29
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,x,i,j;
int a[1002];
int b[5002];
int c[5002];
int min(int p, int q){
    if (q<p)
        return q;
    else
        return p;
}

int main (){
   f>>n>>x;
   c[0]=0;
    for (i=1;i<=x;i++){
        c[i]=1<<24;
    }
    for (i=1;i<=n;i++){
       f>>a[i]>>b[i];
    }
     
    for (i=1;i<=n;i++){
        for(j=x;j>=0;j--){
            if(c[j]!=1<<24){
                if (j+a[i]>=x){
                    c[x]=min(c[x],c[j]+b[i]);
                }
                else{
                    c[j+a[i]]=min(c[j+a[i]], c[j]+b[i]);
                }
            }
        }
    }
    if(c[x]>=1<<24)
       g<<"-1";
    else
        g<<c[x];
    f.close();
    g.close();
    return 0;
}