Cod sursa(job #435154)

Utilizator petreanuandiPetreanu Adelin Andrei petreanuandi Data 6 aprilie 2010 22:52:12
Problema Gutui Scor 10
Compilator c Status done
Runda teme_upb Marime 0.82 kb
#include<stdio.h>
#include<stdlib.h>
FILE *fin, *fout;
int n,h,u;
int hg[100], g[100];
int alegere(int pas)
{
	int max=0,i,ales;
	for(i=0;i<n;i++)
	{
		if(max < hg[i] && (hg[i] + (pas * u) <=h)) 
		{
			max=hg[i];
			ales=i;
		}
	}
	


	return ales;
}
int haccesibil(int pas)
{
	int i,ok=0;
	for(i=0;i<n;i++)
		if(hg[i] + (pas * u) <= h) ok=1;
	return ok;
}



int main(void) {
	fin = fopen("gutui.in", "r");
	fout = fopen("gutui.out", "w");
	int i;
	fscanf(fin, "%d %d %d", &n, &h, &u);
	printf("%d %d %d\n \n",n,h,u);
	for (i = 0; i < n; i++) {
		fscanf(fin, "%d %d", &hg[i], &g[i]);
		printf("%d %d \n", hg[i], g[i]);
	}
	printf("\n \n");
	int suma=0,ales,pas=0;
	
	while(haccesibil(pas))
	{
		ales=alegere(pas);
		pas++;
		suma=suma+g[ales];
		hg[ales]=h+u;
		
	}
	fprintf(fout,"%d\n",suma);		
	fclose(fin);
	fclose(fout);
	return 0;
}