Pagini recente » Monitorul de evaluare | Cod sursa (job #1571840) | Error 502 Bad warpgate | Profil veleandu | Cod sursa (job #1536633)
#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,gre,val,mi,ci,MI;
f>>n;
f>>lim;
for(int i=1;i<=n;i++)
{
f>>gr[i];
f>>v[i];
}
for(int i=1;i<=n;i++)
{
if(gr[i]>lim)
{
for( int j=i;j<n;j++)
{
v[j]=v[j+1];
gr[j]=gr[j+1];
}
n--;
i--;
}
}
do
{
gre=0;
val=0;
for(int i=1;i<=n;i++)
{
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--;
g<<endl;
}
}while(gre>lim);
g<<val;
return 0;
}