Pagini recente » Istoria paginii utilizator/rolandos | Diferente pentru autumn-warmup-2007/solutii/runda-2 intre reviziile 22 si 56 | Cod sursa (job #2751520) | cheerleader | Cod sursa (job #1686733)
#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
int ans[5005];
int main(void){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
for(int i=1; i<5005; ++i) ans[i]=INF;
int g,n,e,c,l=0,r=INF;
scanf("%d%d",&g,&n);
for(int i=0; i<g; ++i){
scanf("%d%d",&e,&c);
for(int j=l; j>=0; --j){
if(ans[j]==-1)
continue;
if(j+e>=n){
l=n;
r=min(r, ans[j]+c);
}
else {
l=max(l,j+e);
ans[j+e]=min(ans[j+e], ans[j]+c);
}
}
}
if(r==INF)
printf("-1");
else
printf("%d",r);
return 0;
}