Pagini recente » Istoria paginii utilizator/rolandveres | Profil CreangaIon | Cod sursa (job #991097) | Cod sursa (job #1299739) | Cod sursa (job #1920263)
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int suma(int **v, int n, int a, int j)
{
int s = 0;
for(int i=a; i<n; i++)
{
s += v[i][j];
}
return s;
}
void sortMatrix(int **v, int n)
{
bool swapp = true;
while(swapp)
{
swapp = false;
for (int i = 0; i < n; i++)
{
if (v[i][1]>v[i+1][1])
{
v[i][1] += v[i+1][1];
v[i+1][1] = v[i][1] - v[i+1][1];
v[i][1] -=v[i+1][1];
v[i][0] += v[i+1][0];
v[i+1][0] = v[i][0] - v[i+1][0];
v[i][0] -=v[i+1][0];
swapp = true;
}
}
}
}
int main()
{
int N,G;
int** v;
int Pmax = 0;
f >> N >> G;
v = new int*[5000];
for (int i = 0; i < 5000; i++)
{
v[i] = new int[2];
}
for(int i = 0; i < N; i++)
{
f >> v[i][0] >> v[i][1];
}
sortMatrix(v, N);
int a = 0;
while (suma(v, N, a, 0) >= G)
{
a++;
}
g << suma(v, N, a-1, 1);
f.close();
g.close();
}