Cod sursa(job #1253088)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 31 octombrie 2014 19:54:49
Problema Energii Scor 100
Compilator cpp Status done
Runda preoji_cl11_12_lspvs Marime 0.64 kb
#include<bits/stdc++.h>
using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

const int oo=1<<30;
const int GMAX=1005;
const int WMAX=10005;

int g,w,a[GMAX],b[GMAX];
int dp[WMAX];

int main()
{
    int i,j;
    fin>>g>>w;
    for (i=1;i<=g;i++) fin>>a[i]>>b[i];
    for (i=0;i<WMAX;i++) dp[i]=oo;
    for (i=1;i<=a[1];i++) dp[i]=b[1];
    for (i=2;i<=g;i++)
    {
        for (j=WMAX-1;j>a[i];j--)
            dp[j]=min(dp[j-a[i]]+b[i],dp[j]);
        for (j=a[i];j>=1;j--) dp[j]=min(dp[j],min(dp[j+1],b[i]));
    }
    if (dp[w]==oo) fout<<"-1\n";
    else fout<<dp[w]<<"\n";
    return 0;
}