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;
}