Cod sursa(job #1478144)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 28 august 2015 00:20:30
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
#include <algorithm>
#define IMAX 1000000000
#define LIM 10000
using namespace std;
int a[3][LIM+23],g,w,minim=IMAX;
int main()
{
    freopen ("energii.in","r",stdin);
    freopen ("energii.out","w",stdout);
    for(int i=1;i<LIM;i++) a[1][i]=IMAX;
    scanf("%d%d",&g,&w);
    int eg,cg;
    for(int i=1;i<=g;i++)
    {
        scanf("%d%d",&eg,&cg);
        for(int j=0;j<LIM;j++) a[2][j]=a[1][j];
        for(int j=0;j<LIM;j++)
        {
            if(j+eg<LIM)
            {
                a[2][j+eg]=min(a[2][j+eg],a[1][j]+cg);
            }
            if(j>=w) minim=min(minim,a[2][j]);
        }
        for(int j=0;j<LIM;j++) a[1][j]=a[2][j];
       // for(int j=0;j<10;j++) printf("%d ",a[2][j]);
        //printf("\n");
    }
    if(minim!=IMAX) printf("%d\n",minim);
    else printf("-1\n");
}