这道题与陶陶摘苹果类似
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e6+10;
int n,m,sum;
struct node{
int p,a;
}s[maxn];
bool cmp(const node&a,const node&b){
return a.p<b.p;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
scanf("%d%d",&s[i].p,&s[i].a);
sort(s+1,s+1+m,cmp);
for(int i=1;i<=m;i++){
if(n>=s[i].a){
sum+=s[i].a*s[i].p;
n-=s[i].a;
}
else{
sum+=n*s[i].p;
break;
}
}
printf("%d\n",sum);
}