~~好像不需要那么麻烦~~
```cpp
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<iomanip>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
struct nai{
int p,a;
}r[5010];
bool cmp(nai c,nai d)
{
return c.p<d.p;
}
int main()
{
int m,tot=0,ans=0,tt,n;
cin>>n>>m;
for(int i=1;i<=m;++i)
cin>>r[i].p>>r[i].a;
sort(r+1,r+m+1,cmp);
for(int i=1;i<=m;++i)
{
if(tot+r[i].a<=n)
{
tot+=r[i].a;
ans=ans+r[i].p*r[i].a;
}
else
{
tt=n-tot;
ans+=(r[i].p*tt);
break;
}
}
cout<<ans;
return 0;
}
```
by 马桶战神 @ 2021-11-06 13:21:58