代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=105;
struct Node
{
int p,m;
}arr[N];
bool compare(Node a,Node b)
{
return a.p>b.p;
}
int main()
{
int v,n,i;
while(scanf("%d",&v)&&v)
{
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%d%d",&arr[i].p,&arr[i].m);
sort(arr,arr+n,compare);
int value=0;
for(i=0; i<n&&v; i++)
{
if(v>arr[i].m)
{
v-=arr[i].m;
value+=arr[i].p*arr[i].m;
}
else
{
value+=arr[i].p*v;
v=0;
}
}
printf("%d\n",value);
}
return 0;
}