P1478 陶陶摘苹果(升级版)

时间:2022-10-16 17:59:14

题解:

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

#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 %dn",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;
}