Pagini recente » Cod sursa (job #2451582) | Cod sursa (job #3229841) | Cod sursa (job #19190) | Cod sursa (job #345988) | Cod sursa (job #948908)
Cod sursa(job #948908)
#ifndef __cplusplus
#error A C++ compiler is required to compile
#endif
#ifndef __FSTREAM_H
#include<fstream>
#define __FSTREAM_H
#endif
#ifndef __STRING_H
#include<cstring>
#define __STRING_H
#endif
using namespace std;
ifstream in;
ofstream out;
int n,s,v[1001],cost[1001],c[5001],Minim=999999999;
int main()
{
in.open("energii.in");
out.open("energii.out");
in>>n>>s;
for(int k=1;k<=n;k++)
in>>v[k]>>cost[k];
memset(c,-1,sizeof(c));
c[0]=0;
for(int i=1;i<=n;i++)
{
for(int j=s;j>=0;--j)
{
if(c[j]!=-1)
{
if(j+v[i]>s)
Minim=Minim>c[j]+cost[i]?c[j]+cost[i]:Minim;
if(j+v[i]<=s)
if(c[j+v[i]]>c[j]+cost[i]||c[j+v[i]]==-1)
c[j+v[i]]=c[j]+cost[i];
}
}
}
if(c[s]==-1&&Minim==999999999)
out<<-1<<"\n";
else
{
if(Minim<c[s])
out<<Minim<<"\n";
if(Minim>c[s])
out<<c[s]<<"\n";
}
in.close();
out.close();
return 0;
}