Cod sursa(job #437284)

Utilizator DuuffyPetre Paul Adrian Duuffy Data 9 aprilie 2010 16:09:46
Problema Gutui Scor 0
Compilator cpp Status done
Runda teme_upb Marime 1.24 kb
#include <stdio.h>
#include <string.h>
void ord(int *a,int *b,int n){
    int i,j,aux,aux2;
      for(i=0;i<n;i++){
      for(j=i+1;j<n;j++){
         if(a[i]<a[j]){
           aux=a[i];
           a[i]=a[j];
           a[j]=aux;
           aux2=b[i];
           b[i]=b[j];
           b[j]=aux2;
         }
      }
    }  
}
void plus(int *v,int ad,int n){
     int i;
     for(i=0;i<n;i++)
        v[i]=v[i]+ad;
}
void print(int *a,int n){
     int i;
      for(i=0;i<n;i++)
        printf("%d ",a[i]);      
}
int main(){
    int i,j,k,n,h,u,v[100],w[100],vv[100],ww[100],total1=0,total2=0;
    int total=0;
    FILE* f;
    FILE* g;
    f=fopen("gutui.in","r"); 
    g=fopen("gutui.out","w");
    fscanf(f,"%d %d %d",&n,&h,&u);
for(i=0;i<n;i++){
    fscanf(f,"%d %d",&j,&k);
    v[i]=j;
    w[i]=k;
}
for(i=0;i<n;i++)
  vv[i]=v[i];
for(i=0;i<n;i++)
  ww[i]=w[i];

ord(v,w,n);  
for(i=0;i<n;i++){
   if(v[i]<=h){ 
      total1=total1+w[i];
       plus(v,u,n);    
   }
}
ord(ww,vv,n);
for(i=0;i<n;i++){
   if(vv[i]<=h){ 
      total2=total2+ww[i];
       plus(vv,u,n);   
   }
   
}
if(total1>total2)
   fprintf(g,"%d",total1);
else
   fprintf(g,"%d",total2);

close(f);
close(g);     
return 1;
}