Cod sursa(job #431419)

Utilizator dorinpislaruPislaru Dorin dorinpislaru Data 31 martie 2010 23:14:41
Problema Gutui Scor 10
Compilator cpp Status done
Runda teme_upb Marime 1.34 kb
#include<stdio.h>
#include<stdlib.h>

typedef struct{
		  int g;
		  int h;
}fruct;

int main(){
	 
	 int n,H,u;
	 FILE *f=fopen("gutui.in","r");
	 fscanf(f ,"%d" ,&n);
	 fscanf(f ,"%d" ,&H);
	 fscanf(f ,"%d" ,&u);
	 
	 fruct a[n];
	 for(int i=0;i<n;++i)
	 {
	  			fscanf(f ,"%d" ,&a[i].h);
	 			fscanf(f ,"%d" ,&a[i].g);
    }
    fclose(f);
    int v[n];
    int aux=n;
    int j=0;
    int s=0,var=-1,var2;
    int max,max2;
    while(aux !=0 ){
    
    max=-1000;max2=-1000;
    for(int i=0;i<n;++i)
    {
	  			if(a[i].h > H-u && a[i].h <= H)
	  			{
				 			 if(a[i].g >= max)
							  {
							  			   max=a[i].g;
							  			   var=i;
						     }
			   }
			   else if(max2 <= a[i].g)
				{ 
				  	  max2=a[i].g;
				  	  var2=i;
		      }
     }
     if(max > 0 && var != -1)
	  {
	  			 s+=max;
				 a[var].g=0;a[var].h=0;aux--;
	  }
	  else if(max2 > 0 && var2 != -1)
	  {
	  			 s+=max2;
				 a[var2].g=0;a[var2].h=0;aux--;
	  }
	  		
	  for(int i=0;i<n;++i)
	  {
	  			 if(a[i].h != 0) 
			    {
				  			  a[i].h+=u;
				  			  if(a[i].h > H)
				  			  {
							  				a[i].h=0;
							  				a[i].g=0;
							  				aux--;
							  }
	          }
	  }
  }
  FILE *f2=fopen("gutui.out","w");
  fprintf(f2 , "%d" ,s);
  fclose(f2);
   
   // system("pause");
    return 0;
}