Pagini recente » Cod sursa (job #601642) | Cod sursa (job #2309297) | Cod sursa (job #1147283) | Cod sursa (job #2745116) | Cod sursa (job #2329804)
#include <iostream>
#include <fstream>
using namespace std;
int mt[5001][2], n, i , j , g , minimw = 999999 , minimp = 999999 , s;
int linie , sp;
int main()
{
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
fin>>n>>g;
for(i=1;i<=n;i++)
for(j=1;j<=2;j++)
fin>>mt[i][j];
j=1;
for(i=1;i<=n;i++)
if(mt[i][j]<minimw)
minimw=mt[i][j];
for(i=1;i<=n;i++)
if(mt[i][j]==minimw)
{
j=2;
for(i=1;i<n;i++)
if(mt[i][j]<minimp)
{
minimp = mt[i][j];
linie = i;
}
}
j=1;
for(i=1;i<=n;i++)
s+=mt[i][j];
while(s>=g)
{
for(i=linie;i<=n;i++)
for(j=1;j<=2;j++)
mt[i][j]=mt[i+1][j];
n--;
s=0;
for(i=1;i<=n;i++)
s+=mt[i][j];
for(i=1;i<=n;i++)
if(mt[i][j]==minimw)
{
j=2;
for(i=1;i<n;i++)
if(mt[i][j]<minimp)
{
minimp = mt[i][j];
linie = i;
}
}
}
j=2;
for(i=1;i<=n;i++)
sp +=mt[i][j];
fout<<sp;
}