十年OI一场空,不开LONG LONG见祖宗
这是没开LONG LONG 的代码(85分)
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int n,d,v[maxn],a[maxn],ans,can,have;
signed main(){
cin>>n>>d;
for(int i=1;i<=n-1;i++) cin>>v[i];
for(int i=1;i<=n;i++) cin>>a[i];
priority_queue <int,vector<int>,greater<int> > q;
for(int i=1;i<=n-1;i++){
q.push(a[i]);
while(can<v[i]){
can+=d;
ans+=q.top();
}
can-=v[i];
}
cout<<ans;
return 0;
}
这是开了LONG LONG后
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e5+10;
int n,d,v[maxn],a[maxn],ans,can,have;
signed main(){
cin>>n>>d;
for(int i=1;i<=n-1;i++) cin>>v[i];
for(int i=1;i<=n;i++) cin>>a[i];
priority_queue <int,vector<int>,greater<int> > q;
for(int i=1;i<=n-1;i++){
q.push(a[i]);
while(can<v[i]){
can+=d;
ans+=q.top();
}
can-=v[i];
}
cout<<ans;
return 0;
}