把数量*1000然后加上价格 取价格排序来取代结构体 但是怎么处理价格为0的状态
#include<stdio.h>
int tt(int a){
if(a%1000==0){
return 1000;
}else{
return a%1000;
}
}
void quicksort(int* a,int start,int end){
int s=start;
int e=end;
int p=a[start];
while(s<e){
while(s<e&&tt(a[e])>=tt(p)){
e--;
}
if(s<e){
a[s]=a[e];
s++;
}
while(s<e&&tt(a[s])<=tt(p)){
s++;
}
if(s<e){
a[e]=a[s];
e--;
}
a[s]=p;
quicksort(a,start,s-1);
quicksort(a,s+1,end);
}
}
main(){
int n,m;
scanf("%d%d",&n,&m);
int ss[5010];
int pp=0;
for(int i=1;i<=m;i++){
int prize,how;
scanf("%d %d",&prize,&how);
ss[i]=how*1000+prize;
}
quicksort(ss,1,m);
int sum=0,liang=0;
for(int i=1;i<=m;i++){
if(liang+ss[i]/1000>=n){
sum=sum+(n-liang)*tt(ss[i]);
break;
}else{
liang=liang+ss[i]/1000;
sum=sum+ss[i]/1000*tt(ss[i]);
}
}
printf("%d",sum);
}