Cod sursa(job #1333221)

Utilizator akaprosAna Kapros akapros Data 2 februarie 2015 21:52:18
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,k,i,j,p,q,nr,sol,s;
int a[1001][5001];
struct generator
{
    int e;
    int c;
}v[1005];
int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d %d",&k,&n);
    sol=1000000000;
    for (i=1;i<=k;i++)
    scanf("%d %d",&v[i].e,&v[i].c),s=s+v[i].e;
    if (s<n){printf("-1"); return 0;}
    for (i=0;i<=k;i++)
    for (j=1;j<=n;j++)
    a[i][j]=1000000000;
    a[0][0]=0;
    for (i=1;i<=k;i++)
    for (j=1;j<=n;j++)
    {
        a[i][j]=min(a[i-1][j],a[i-1][max(0,j-v[i].e)]+v[i].c);
        if (j==n)
        sol=min(sol,a[i][j]);
    }
    printf("%d",sol);
    return 0;
}