Cod sursa(job #1733430)
| Utilizator | Data | 24 iulie 2016 17:58:29 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,S,i,j,sol=1<<30,put,cost,Xp=1<<30,R[1<<13];
int main()
{
fin>>n>>S;
for(i=1;i<5001;++i) R[i]=Xp;
for(i=1;i<=n;++i)
{
fin>>put>>cost;
for(j=S;j>=0;--j)
if(j+put<=S)
{
if(R[j+put]>R[j]+cost) R[j+put]=R[j]+cost;
}
else sol=min(sol,R[j]+cost);
}
sol=min(sol,R[S]);
if(sol==Xp) sol=-1;
fout<<sol;
return 0;
}
