没看出来
by Einstein_bili @ 2022-07-14 16:40:49
记录发一下
by Xcc_Kanade @ 2022-07-14 16:42:40
@[Luo_gu_ykc](/user/415961) 大概是ans的问题
by mzycmzy @ 2022-07-14 17:07:05
@[Luo_gu_ykc](/user/415961)
```cpp
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 250005;
int a[N], b[N], n;
typedef pair<long long,int> pii;
priority_queue<pii,vector<pii>,less<pii> > q;
bool v[N];
int ans, sum = 0;
signed main() {
cin >> n;
for(int i = 1; i <= n; i++){cin >> a[i];}
for(int i = 1; i <= n; i++){cin >> b[i];}
for(int i = 1; i <= n; i++){
sum += a[i];
if(sum<=b[i]&&!q.empty()&&q.top().first>b[i]){
sum += q.top().first;
v[q.top().second] = 0;
q.pop();
ans--;
}
if(sum>=b[i]){
sum -= b[i];
v[i] = 1;
q.push((pii){b[i], i});
ans++;
}
}
cout <<q.size()<< "\n";
for(int i = 1; i <= n; i++){
if(v[i]){
cout << i << ' ';
}
}
return 0;
}
```
by mzycmzy @ 2022-07-14 17:22:18
大根堆错了
by mzycmzy @ 2022-07-14 17:23:13
@[mzycmzy](/user/444833) 谢谢,但请问为什么我那么写就错了呢?
by Luo_gu_ykc @ 2022-07-14 18:07:05
@[Luo_gu_ykc](/user/415961) 不知道,反正改成这样就对了
by mzycmzy @ 2022-07-15 08:02:11