Cod sursa(job #864207)

Utilizator hcalinHrih Calin hcalin Data 24 ianuarie 2013 19:25:50
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<cstdio>
#include<algorithm>
using namespace std;

int n,i,w,sum,costt;

struct interval{
    int put;
    int cost;
	float rap;
};
interval temp[9005];

bool cmp(interval A,interval B){
    return A.rap > B.rap;
}

int main () {
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d",&n);
	scanf("%d",&w);
	for ( i = 1 ; i <= n ; i++ )
	{	scanf("%d%d",&temp[i].put,&temp[i].cost);
		sum += temp[i].put;
		temp[i].rap= float(temp[i].put) / float(temp[i].cost) ;
	} 
	if( sum < w ) 
			printf("-1\n");
	else { 
		
	sort(temp + 1,temp + n +1,cmp);
	i=1;
	while( costt < w )
	{	costt += temp[i].cost;
		i++;
	}
			printf("%d",costt);
	}
	return 0;
}