Cod sursa(job #2522231)

Utilizator Narcis09Grecu Narcis Narcis09 Data 12 ianuarie 2020 10:28:31
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
#define dmax 5001
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

struct Obiect{
	int g, val;
}v[dmax];

bool cmp(Obiect a, Obiect b){
	if (a.val<b.val)
		return 1;
	if (a.val==b.val){
		if (a.g<b.g)
			return 1;
		else
			return 0;
	}
	return 0;
}

int main(){
	int n, g, i, rez=0;
	fin>>n>>g;
	for (i=1;i<=n;i++)
		fin>>v[i].g>>v[i].val;
	sort(v+1, v+n+1, cmp);
	for (i=n;i>0;--i)
		if (g-v[i].g>=0){
			g-=v[i].g;
			rez+=v[i].val;
		}
	fout<<rez;
		
}