/*U centimetri (cu cat se ridica crengile copacului la fiecare gutuie culeasa
H inaltimea maxima (la care poate ajunge Gigel cel cu capu chel
N-nr gutui din copac
g - greutatea unei gutui
fisier intrare avem:
N H U
u1 g1
....
uN gN
fisier iesire vom avea:
greutatea maxima pe care o poate culege Gigel( ceva gen suma celor mai bine alese gutui)
*/
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
int max(int x,int y)
{
int max=0;
if(x<y)
max=y;
else
max=x;
}
void sortare(int x[],int n)
{
int temp,i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if (x[i]<x[j]){
temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
int main()
{
int greu,max1=0,max2=0,max3=0,max4=0,i=0,aux=0,H, U, N, u[20], g[20];
int s=0,max5=0,max6=0,max7=0,max8=0,max9=0,max10=0,max11=0;
FILE *f1,*f2;
f1=fopen("gutui.in","r");
f2=fopen("gutui.out","w");
fscanf(f1,"%d %d %d",&N,&H,&U);
// printf("N=%d H=%d U=%d\n",N,H,U);
for(i=0;i<N;i++)
{fscanf(f1,"%d %d",&u[i],&g[i]);
// printf(" %d %d\n",u[i],g[i]);
}
/*for (i=0;i<N;i++){
printf(" %d",g[i]);
}
printf("\n");
*/
/*for(i=1;i<=N;i++)
{ if(u[i]>(H-10)&& u[i]<=H && max1<g[i]){
max1=g[i];
s=s+max1;}
printf("%d %d\n",max1,s);
}
printf("\n");
printf("\n");
printf("\n");*/
// sortare(u,i);
/* for (i=0;i<N;i++)
printf(" %d",u[i]);
printf("\n");*/
// poz=0;
for (i=0;i<N;i++)
if(u[i]>90 && u[i]<=100 && max1<g[i])
{max1=g[i];
// poz=i;
s=s+max1;
u[i]=u[i]+10;
}
// printf("%d\n",max1);
for (i=0;i<N;i++)
if(u[i]>80 && u[i]<=90 && max2<g[i])
{max2=g[i];
}
// printf("%d\n",max2);
for (i=0;i<N;i++)
if(u[i]>70 && u[i]<=80 && max3<g[i])
{max3=g[i];
// poz=i;
}
for (i=0;i<N;i++)
if(u[i]>60 && u[i]<=70 && max4<g[i])
{max4=g[i];
// poz=i;
}
for (i=0;i<N;i++)
if(u[i]>50 && u[i]<=60 && max5<g[i])
{max5=g[i];
// poz=i;
}
for (i=0;i<N;i++)
if(u[i]>40 && u[i]<=50 && max6<g[i])
{max6=g[i];
// poz=i;
}
for (i=0;i<N;i++)
if(u[i]>40 && u[i]<=50 && max7<g[i])
{max7=g[i];
// poz=i;
}
for (i=0;i<N;i++)
if(u[i]>30 && u[i]<=40 && max8<g[i])
{max8=g[i];
// poz=i;
}
for (i=0;i<N;i++)
if(u[i]>20 && u[i]<=30 && max9<g[i])
{max9=g[i];
// poz=i;
}
for (i=0;i<N;i++)
if(u[i]>10 && u[i]<=20 && max10<g[i])
{max10=g[i];
// poz=i;
}
for (i=0;i<N;i++)
if(u[i]>0 && u[i]<=10 && max11<g[i])
{max11=g[i];
// poz=i;
}
// printf("%d\n",max3);
s=s+max1+max2+max3+max4;
s=s+max5+max6+max7+max8;
s=s+max9+max10+max11;
//+max5+max6+max7+max8+max9+max10+max11;
// if(max3!= 0) s=s+max3;
fprintf(f2,"%d",s);
/*. while(!feof(f1)){
fscanf(f1,"%d %d",&u[i++],&g[i++]);
printf("%d %d\n",u[i],g[i]);
}*/
fclose(f1);
fclose(f2);
//getchar();
return 0;
}
/* Bosilca Adrian: pai eu am sortat in functie de greutati
carli flory: si le ai luat pe alea mai mari?
Bosilca Adrian: si paoi am folosit un vector auxiliar
Bosilca Adrian: da
carli flory: sau ai facut o medie ponderata
Bosilca Adrian: in oridne descrescatoare
carli flory: cred ca ar fi mers
Bosilca Adrian: pai nu prea merge asa pt k trebuie sa le iei exact pe alea cele mai importante
carli flory: adica pe cele mai grele
Bosilca Adrian: da
carli flory: si practic
carli flory: nu te intereseaza decat sa le iei pe cele mai grele
carli flory: pana se ridica crengile la inaltimea H
Bosilca Adrian: da dar nu e chiar asa simplu
carli flory: pai dk ar fi fost asa
carli flory: as fi facut-o matematic
carli flory:
carli flory:
carli flory: dar
carli flory: ..
carli flory: sigur mai e o manevra
carli flory: ca poate 2 cantaresc mai mult si se ridica cat o gutuie mai putin grea
Bosilca Adrian: pt ca de ex daca ai o gutuie care e jos cea mai grea
Bosilca Adrian: pe aia o iei mai tarziu, k poate altele sunt mai sus su dupa nu mai ajungi la ele
carli flory: pai si le sortezi si in functie de inaltime?
carli flory: ca eu inteleg ce zici u
carli flory: dar
carli flory: in implementare nu prea
carli flory: asa teoretic da
Bosilca Adrian: pai daca faci cum am facut eu
Bosilca Adrian: de ex eu am un vector auxiliar in care retin ce nivele ocup
Bosilca Adrian: multi au facut ordonat dupa inaltimi
Bosilca Adrian: si apoi au luat pe cazuri greutatile, nu stiu exact cum
carli flory: pai da inteleg ce zici u
carli flory: dar ar fi ceva gen
carli flory: daca g[i] e f mare si u[i] f mic
carli flory: se ia la sfarist
carli flory: dar nu prea imi daiu seama cum se scrie
Bosilca Adrian: pai eu o trec in vectorul auxiliar pe pozitia corespunzatoare
Bosilca Adrian: si in general verific daca nivelul corespunzator gutui este ocupat si daca e ocupat verific nivelele inferioare
*/