Pagini recente » Cod sursa (job #1882544) | Cod sursa (job #1667095) | Cod sursa (job #2076991) | Cod sursa (job #1964714) | Cod sursa (job #1536412)
#include <iostream>
#include <fstream>
#include <limits.h>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int v[10000],gr[10000];
int main()
{
int n,lim,ok,gre,val,mi,ci,MI;
f>>n;
f>>lim;
for(int i=1;i<=n;i++)
{
f>>gr[i];
f>>v[i];
}
ok=0;
while(ok==0)
{
gre=0;
val=0;
for(int i=1;i<=n;i++)
{
if(gr[i]!=-1)
{
val=val+v[i];
gre=gre+gr[i];
}
}
if(gre>lim)
{
mi=INT_MAX;
for(int i=1;i<=n;i++)
{
if(v[i]<mi)
mi=v[i];
}
MI=INT_MIN;
for(int i=1;i<=n;i++)
{
if(v[i]==mi)
if(gr[i]>MI)
MI=gr[i];
}
for(int i=1;i<=n;i++)
{
if(gr[i]==MI && v[i]==mi)
ci=i;
}
for(int i=ci;i<n;i++)
{
v[i]=v[i+1];
gr[i]=gr[i+1];
}
n--;
}
if(gre<=lim)
ok=1;
}
g<<val;
return 0;
}