Pagini recente » Cod sursa (job #1192705) | Cod sursa (job #909645) | Cod sursa (job #504488) | Cod sursa (job #1096659) | Cod sursa (job #2661677)
#include <iostream>
#include <math.h>
#include <vector>
#include <queue>
#include <stack>
#include <list>
#include <iomanip>
#include <stdlib.h>
#include <fstream>
#include <algorithm>
#include <string>
#include <set>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n , gmax , dp[50001] , gc , vc;
int main() {
long long suma_max = 0;
f>>n>>gmax;
for(int i=1;i<=50001;i++)dp[i]=1e9;
for(int i=1;i<=n;i++)
{
f>>gc>>vc;
suma_max+=gc;
for(int j= gmax ; j>=gc ; j--)
{dp[j] = min(dp[j] , dp[j-gc] + vc);
}
}
if(suma_max < gmax)
{
g<<-1;
}
else {
int i = gmax;
while(dp[i] == 1e9)i++;
g<<dp[i];}
return 0;
}