Pagini recente » Istoria paginii runda/rar27 | Istoria paginii runda/3252352525/clasament | Cod sursa (job #1205553) | Rating Zat Vlad Mihail (zat_vlad) | Cod sursa (job #2707687)
#include <cstring>
#include <iostream>
#include <fstream>
#include <algorithm>
#include <deque>
#include <queue>
using namespace std;
int coli[]= {0,1,0,-1};
int lini[]= {-1,0,1,0};
struct bob
{
int wg;
int val;
} negru[5009],benis;
long long n,m,ok,s,x,y,v[3][10002],i,j,nr,aux[300][300],k,maxi,x1,x2,mini=999999;
int main()
{
ifstream in("energii.in");
ofstream out("energii.out");
in>>n>>m;
for(i=1; i<=n; i++)
{
in>>negru[i].val>>negru[i].wg;
if(negru[i].wg>maxi)
maxi=negru[i].wg;
}
for(i=1; i<=n; i++)
for(j=1; j<=maxi; j++)
{
if(j-negru[i].wg>=0)
if(i%2==1)
v[i%2][j]=max(v[0][j],v[0][j-negru[i].wg]+negru[i].val);
else
v[i%2][j]=max(v[1][j],v[1][j-negru[i].wg]+negru[i].val);
else
{
if(i%2==0)
v[i%2][j]=v[1][j];
else
v[i%2][j]=v[0][j];
}
if(v[i%2][j]>=m)
if(j<mini)
mini=j;
}
if(mini==999999)
mini=-1;
out<<mini;
return 0;
}