#include<bits/stdc++.h> using namespace std; // //n需要牛奶100 农民:5 //单价 牛奶量 //3 10 30 //5 20 100 //6 30 180 //8 80 320 //9 40 //需要根据单价排序 还剩下多少没买now100 当前花了多少money // 循环从上到下 // 比较10大还是now大 // 如果now大 // 全买money+=单价*10 // 如果10大 // 买足够的就够了money+=单价*now // 买完了直接结束 // int n,m,money; struct Node{ int p,c; }a[5005]; bool cmp(Node x,Node y){ return x.p<y.p; } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ cin>>a[i].p>>a[i].c; } sort(a+1,a+m+1,cmp); for(int i=1;i<=m;i++){ if(a[i].c<n){ money+=a[i].p*a[i].c; n=n-a[i].c; } else{ money+=a[i].p*n; break; } } cout<<money; return 0; } /************************************************************** Problem: 1940 User: admin Language: C++ Result: Accepted Time:49 ms Memory:2116 kb ****************************************************************/