Cod sursa(job #1059833)

Utilizator buzu.tudor67Tudor Buzu buzu.tudor67 Data 17 decembrie 2013 00:33:16
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#define inf (1<<30)
#define maxn 1003
#define maxg 5003
using namespace std;
ifstream fi("energii.in");
ofstream fo("energii.out");

int a[maxn][maxg],i,j,n,w;
int g[maxn],p[maxn];

inline int min(int a,int b){
       if(a<b) return a; else return b;
}

int main(){
    fi>>n>>w;
    
    for(i=1;i<=n;i++) fi>>g[i]>>p[i];
    
    for(i=0;i<=n;i++)
       for(j=0;j<=w;j++) a[i][j]=inf;
       
    for(i=0;i<=n;i++) a[i][0]=0;
    
    for(i=1;i<=n;i++)
       for(j=1;j<=w;j++)
          if(j>=g[i]) a[i][j]=min(a[i-1][j],p[i]+a[i-1][j-g[i]]);
          else a[i][j]=min(a[i-1][j],p[i]);
    
    if(a[n][w]!=inf) fo<<a[n][w];
    else fo<<"-1"; 
    
    fi.close();
    fo.close();
    return 0;
}