Cod sursa(job #1677733)

Utilizator xandruGuzun Alexandru xandru Data 6 aprilie 2016 19:18:17
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <bits/stdc++.h>

using namespace std;
struct energii{
	int  x,y;
};
ifstream fin("energii.in");
ofstream fout("energii.out");
int g,i,w;
energii a[10005];
long long s1=0,s2=0,s=0;
bool cmp (energii a, energii b)
{
	return (a.x>b.x) || (a.x==b.x)&(a.y<b.y);
}
int main()
{
	fin>>g>>w;
	for(i=1;i<=g;i++)
	{
		fin>>a[i].x>>a[i].y;
		s1=a[i].x+s1;
		s2=a[i].y+s2;
	}
	if(s1<w){
		fout<<"-1";
	}
	else{
		if(s1==w)
		fout<<s2;
		else
		{
	sort(a+1,a+g+1,cmp);
	
	i=1;
	while(w>0)
	{
		w=w-a[i].x;
		s=s+a[i].y;
		i++;
	}
	fout<<s;
}}
	return 0;
}