Cod sursa(job #570098)

Utilizator GrimpowRadu Andrei Grimpow Data 2 aprilie 2011 16:15:37
Problema Gutui Scor 70
Compilator cpp Status done
Runda teme_upb Marime 1.12 kb
#include<iostream>
//#include<conio.h>
using namespace std;

struct vai
{
       long long int niv,gr;
       };
int comp(const void* x,const void* y)
{
 vai t=*((vai*)x); 
 vai r=*((vai*)y);
 if(r.niv==t.niv) 
  return r.gr-t.gr;
 else
  return t.niv-r.niv;  
}




int main()
{
  long long int s,a[10001],h,u,j,i,n,b,min,y=0,q;
  vai *v=new vai [10001];
  FILE *f=fopen("gutui.in","rt");
  fscanf(f,"%lli%lli%lli",&n,&h,&u);
  for(i=0;i<n;i++)
  {
                  fscanf(f,"%lli%lli",&q,&b);
                  v[i].niv=(h-q)/u;
                  v[i].gr=b;
  }  
  fclose(f);
  qsort(v,n,sizeof(vai),comp);
  h=0;
  for(i=0;i<n;i++)
  {
       if(v[i].niv>=h)
         {
         a[h]=v[i].gr; 
         h++;
         }
       else 
       {
            min=a[0];
            y=0;
            for(j=0;j<h;j++)
               if(a[j]<min) {min=a[j]; y=j;}
            if(v[i].gr>min) a[y]=v[i].gr;
            
       }        
  }
  s=0;
  for(i=0;i<h;i++)
     s+=a[i];
  FILE *g=fopen("gutui.out","wt");

  fprintf(g,"%lli",s);   
  fclose(g);      
   return 0;
}