```
#include<iostream>
#include<algorithm>
#define int long long
using namespace std;
const int N = 2e6 + 5;
struct Node{
int k, n;
bool operator < (Node s){
return k < s.k;
}
}a[N];
int n,m,ans=0,k=1;
signed main() {
ios::sync_with_stdio(false);
std::cin >> n >> m;
for (int i = 1; i <=m; i++) std::cin >> a[i].k >> a[i].n;
std::sort(a+1, a +1+ m);
while (n > 0) {
if (a[k].n <= n) {
n -= a[k].n;
ans +=( a[k].n*a[k].k);
}
else {
ans += (n*a[k].k);
break;
}
k++;
}
std::cout << ans<<std::endl;
return 0;
}
```
by Buried_Dream @ 2022-01-20 08:52:00
数组开到2e6,然后重载运算符<= 改成 <
by Buried_Dream @ 2022-01-20 08:52:34
@[lirener](/user/374769)
by Buried_Dream @ 2022-01-20 08:53:18
其实只把重载改一下就能切
by Buried_Dream @ 2022-01-20 08:54:05
@[lirener](/user/374769) 重载中的<= 改成 <
by Buried_Dream @ 2022-01-20 08:55:32
@[lirener](/user/374769) 哥,咱重载错了改过来不行吗,不是数组的关系
by Buried_Dream @ 2022-01-20 08:58:33
万分感谢!!!
请问问题是出在了数组越界和cin没有关闭流同步吗?
by Faith_toChange @ 2022-01-20 08:59:09
```cpp
struct Node{
int k, n;
bool operator < (Node s){
return k<=s.k;
}
}a[N];
```
改成:
```cpp
struct Node{
int k, n;
bool operator < (Node s){
return k<s.k;
}
}a[N];
```
by Buried_Dream @ 2022-01-20 08:59:25
@[lirener](/user/374769) 问题在你重载挂了,其他都没问题
by Buried_Dream @ 2022-01-20 09:00:09
哦哦哦 刚才网页没刷新不好意思
by Faith_toChange @ 2022-01-20 09:00:11