Pagini recente » Cod sursa (job #1500873) | Cod sursa (job #304240) | Cod sursa (job #2742029) | Cod sursa (job #2289787) | Cod sursa (job #907165)
Cod sursa(job #907165)
#include<iostream>
#include <fstream>
#include<algorithm>
#include<vector>
using namespace std;
ifstream in ("energii.in");
ofstream out ("energii.out");
# define N 10001
# define M 100001
int g[N],p[N],v[M];
int n, G,minim = 30000000;
int s;
void citire()
{
in>>n>>G;
for( int i=1;i<=n;i++)
{
in>>g[i]>>p[i];
s += g[i];
}
for( int i=1;i<=s;i++)
{
v[i] = 30000000;
}
}
void proces()
{
for( int i=1;i<=n;i++)
{
for( int j = G; j>=0; j--)
{
if(v[j]!=30000000)
{
if(v[j]+p[i] < v[j+g[i]])
{
v[j+g[i]] = v[j]+p[i];
}
}
}
}
for( int i=G;i<=15000;i++)
{
if(v[i]<minim)
{
minim=v[i];
}
}
out<<minim;
}
int main()
{
citire();
if(s < G) {
out << "-1";
} else {
proces();
}
return 0;
}