很简单的排序题目,,,
#include <bits/stdc++.h>
using namespace std;
#define LL long long
const int INF = 0x3f3f3f3f;
const int MAXN = 1e6+10;
int trie[MAXN][2];
const int mod = 998244353;
int arr[MAXN];
struct node {
int x, y;
bool operator <(const node &r)const {
return x < r.x;
}
}p[MAXN];
int main() {
int n, m;
cin >> n >> m;
for(int i = 0; i < m; i++) {
cin >> p[i].x >> p[i].y;
}
sort(p,p+m);
LL sum = 0, xx = 0;
for(int i = 0; i < m; i++) {
if(xx+p[i].y > n) {
sum += (n-xx)*p[i].x;
break;
}
xx += p[i].y;
sum += p[i].y*p[i].x;
}
cout << sum << endl;
return 0;
}