roblem Description
Input
Output
Example Input
4 2
1 2
1 3
2 2
3 4 
Example Output
5
 
 
 
 
 #include <stdio.h>
 #include <stdlib.h>
 struct node
 {
     int w,p,h;
 }a[10001],t;
 void q(struct node a[],int l,int r)//快速排序;
 {
     struct node key=a[l];
     int i=l,j=r;
     if(l>=r) return;
     if(l<r)
     {
     while(i<j)
     {
         while(i<j&&a[j].w>key.w) j--;
         while(i<j&&a[j].w==key.w)//质量相等则选价格高的;
         {
             if(a[j].p>key.p) break;
             else
                 j--;
         }
         a[i]=a[j];
         while(i<j&&a[i].w<key.w)
             i++;
         while(i<j&&a[i].w==key.w)
         {
             if(a[i].p<key.p) break;//质量相等,则选价格高的;
             else i++;
         }
         a[j]=a[i];
     }
     a[i]=key;
     q(a,l,i-1);
     q(a,i+1,r);
 }
 }
 int main()
 {
     int i,m,n,c;
     while(~scanf("%d%d",&n,&m))
     {
         c=0;
         for(i=0;i<n;i++)
             scanf("%d%d",&a[i].w,&a[i].p);
         q(a,0,n-1);
         for(i=0;i<m;i++)
             c+=a[i].p;
         printf("%d\n",c);
     }
     return 0;
 }