Pagini recente » Istoria paginii runda/pressure | Rating Petre Nicoleta (PetreNicoleta) | Cod sursa (job #2423494) | Istoria paginii runda/pressure | Cod sursa (job #219123)
Cod sursa(job #219123)
#include<stdio.h>
int W,G,A[1002][2],D[2][5002],X,M;
int min(int a1,int a2,int k,int l)
{
if (a1<0) if ((a2-A[k][2]<0)||(l-A[k][1]<0)) return -1;
else return a2;
else if (a1<a2) return a1; else return a2;
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d %d", &G, &W);
for (int i=1; i<=G; ++i)
scanf("%d %d", &A[i][1] ,&A[i][2]);
for (int i=1; i<=W; ++i)
if (A[1][1]>=i)
D[X][i]=A[1][2];
else D[X][i]=-1;
for (int i=2; i<=G; ++i)
{
for (int j=1;j<=W;++j)
{
M=min(D[X][j],D[X][j-A[i][1]]+A[i][2],i,j);
D[!X][j]=M;
}
X=!X;
}
printf("%d", D[X][W]);
}