社区讨论
100pts 马风良好 subtask#1后两个测试点WA
P8586 星环防御工事参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhj2zvf3
- 此快照首次捕获于
- 2025/11/03 19:53 4 个月前
- 此快照最后确认于
- 2025/11/03 19:53 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,k,max_d,ans,a[300005];
inline int read() {
int n=0,f=1;
char ch=getchar();
while(!isdigit(ch)) {
if(ch=='-') f=-1;
ch=getchar();
}
while(isdigit(ch)) {
n=n*10+ch-'0';
ch=getchar();
}
return f*n;
}
inline void write(int n) {
if(n<0) putchar('-'),n=-n;
if(n<10) putchar(n+'0');
else write(n/10),putchar(n%10+'0');
}
int main() {
n=read(),k=read();
for(int i=1;i<=n;i++) {
int d=read(),m=read();
a[d]+=m;
max_d=max(max_d,d);
}
for(int i=1;i<=max_d+1;i++) {
int save=k;
if(a[i-1]>0) {
if(a[i-1]>=save) ans+=save,save=0;
else save-=a[i-1],ans+=a[i-1];
}
if(save>0&&a[i]>0) {
if(a[i]>=save) ans+=save,a[i]-=save;
else ans+=a[i],a[i]=0;
}
}
write(ans);
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...