Cod sursa(job #2109112)
Utilizator | Data | 19 ianuarie 2018 09:51:13 | |
---|---|---|---|
Problema | Energii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,k,a[5002],e,c,Min=1000000000;
int main()
{
fin>>n>>k;
for(int i=1;i<=k;i++)
a[i]=1000000000;
while(n)
{
n--;
fin>>e>>c;
if(e>=k)
{
if(c<Min)
Min=c;
}
else
{
for(int i=k;i>0;i--)
if(a[i]!=1000000000)
{
if(i+e>=k)
Min=min(Min,a[i]+c);
a[i+e]=min(a[i+e],a[i]+c);
}
a[e]=min(c,a[e]);
}
}
fout<<Min;
return 0;
}