P1478 陶陶摘苹果(升级版)

题解:

此题需要先排序在进行计算

#include<stdio.h>

void swap(int *a,int *b){

 int t=*a;

 *a=*b;

 *b=t;

}
//void sort(int a[],int s,int e,int b[]){

// if(s>=e){

//  return;

// }

// int k=a[s];

// int i=s,j=e;

// while(i!=j){

//  while(j>i&&a[j]>=k)

//   –j;

//  swap(&a[i],&a[j]);

//  swap(&b[i],&b[j]);

//  while(i<j&&a[i]<=k)

//   ++i;

//  swap(&a[i],&a[j]);

//  swap(&b[i],&b[j]);

// }

// sort(a,s,i-1,b);

// sort(a,i+1,e,b);

//}
int main()

{

 int n,s;

 scanf(“%d %d”,&n,&s);

 int a,b;

 scanf(“%d %d”,&a,&b);

 int  x[n],y[n],i;

 for(i=0;i<n;i++){

  scanf(“%d %d”,&x[i],&y[i]);

 }

 

// sort(y,0,n-1,x);

 

 int j;

 for(i=1;i<n;i++){

  for(j=n-1;j>=i;j–){

   if(y[j]<y[j-1]){

    swap(&y[j],&y[j-1]);

    swap(&x[j],&x[j-1]);

   }

  }

 }

 

// {

//  printf(“************\n”);

//  for(i=0;i<n;i++){

//   printf(“%d %d\n”,x[i],y[i]);

//  }

// }

 

 int ret=0;

 a+=b;

 for(i=0;i<n;i++){

  if(a>=x[i]){

   s-=y[i];

   if(s<0){

    break;

   }

   ret++;

  }

 }

 printf(“%d”,ret);

 return 0;

}