Cod sursa(job #439956)

Utilizator oana.fercheoana maria oana.ferche Data 11 aprilie 2010 20:58:26
Problema Gutui Scor 0
Compilator c Status done
Runda teme_upb Marime 2.32 kb
#include<stdio.h>

#define MAX 100000
int main(){
    
    unsigned int N,H,U;
    unsigned int kg[MAX];
    unsigned int alt[MAX]; //inaltimea la care se afla gutuile
    
    FILE* f;
    
    f=fopen("gutui.in","r");
    
    fscanf(f,"%d",&N);
    fscanf(f,"%d",&H);
    fscanf(f,"%d",&U);
    
    unsigned int i,j, aux;
    
    
    
    char culese[MAX];
    
    for(i=0;i<N;i++)
    {
                    fscanf(f,"%d",&alt[i]);
                    fscanf(f,"%d",&kg[i]);
                  
                    culese[i]=0;
    }
    
    for(i=0;i<N-1;i++)
                for(j=i;j<N;j++)
                {
                                if(kg[i]<kg[j])
                                {
                                                 aux=alt[i];
                                                 alt[i]=alt[j];
                                                 alt[j]=aux;
                                                 aux=kg[i];
                                                 kg[i]=kg[j];
                                                 kg[j]=aux;
                                            
                                }
                }
                

         unsigned int  hmax=H;
     for(i=0;i<N;i++)
                for(j=0;j<N;j++)
                {
                                if(alt[i]<=H-j*U && alt[j]>H-j*U )
                                {
                                                 aux=alt[i];
                                                 alt[i]=alt[j];
                                                 alt[j]=aux;
                                                 aux=kg[i];
                                                 kg[i]=kg[j];
                                                 kg[j]=aux;
                                                 
                                }
                }
             
     unsigned int total=0;
     
     for(i=0;i<H/U;i++){
                        if(alt[i]<=hmax){
                                              total+=kg[i];
                                              hmax-=U;
                                              }
                                              }
    FILE* g;
  g=fopen("gutui.out","w");
  fprintf(g,"%d",total);
  fclose(f);
  fclose(g);
     return 0;
     }