Pagini recente » Diferente pentru preoni-2008/clasament/runda-1/11-12 intre reviziile 2 si 1 | Profil tlmgeox_13 | Istoria paginii utilizator/metallidethantralayer | Istoria paginii utilizator/andreias | Cod sursa (job #476979)
Cod sursa(job #476979)
# include <cstdio>
# define N 1001
using namespace std;
int S,G,W,e[N],c[N],sol[N*20],i,j,S2,sum,minim=1000000000,sum2;
int main (){
freopen ("energii.in","r",stdin);
freopen ("energii.out","w",stdout);
scanf ("%d%d",&G,&W);
for (i=1;i<=G;++i){
scanf ("%d%d",&e[i],&c[i]);
if (sol[e[i]]==0 || sol[e[i]]>e[i]) sol[e[i]]=c[i];
if (S<e[i]) S=e[i];
}
if (S>W) S=W;
for (i=1;i<=G;++i)
for ( S=(S>S2?S:S2) ,j=1,S2=0;j<=S;++j)
if (sol[S]){
sum=S+e[i];
sum2=sol[j]+c[i];
if (sol[sum]==0 || sol[sum]>sum2 && sum2<20000) sol[sum]=sum2;
if (S2<sol[sum]) S2=sol[sum];
}
for (i=S;i>=W;--i)
if (minim>sol[i] && sol[i]) minim=sol[i];
printf ("%d\n",minim);
return 0;
}