社区讨论
16求条
P15342「RedStone OI R1 B」浮木保卫战参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mlnwv54v
- 此快照首次捕获于
- 2026/02/15 23:39 4 天前
- 此快照最后确认于
- 2026/02/16 21:16 3 天前
算模拟吧
CPP#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m,o;
long long sum=0;
cin>>n>>m>>o;
int a[n+1]={},b[m+1]={},l[n+1]={},r[n+1]={},l1[m+1]={},r1[m+1]={};
int amax[n+1]={},bmin[m+1]={};
bmin[0]=114514;
for (int i=1;i<=n;i++){
cin>>a[i];
amax[i]=max(amax[i-1],a[i]);
}
for (int i=1;i<=n;i++){
cin>>l[i]>>r[i];
}
for (int i=1;i<=m;i++){
cin>>b[i];
bmin[i]=min(bmin[i-1],b[i]);
}
for (int i=1;i<=m;i++){
cin>>l1[i]>>r1[i];
}
int lnow=1,rnow=n;
while (o>0){
int i=0;
for (int j=1;j<=n;j++){
if (a[j]==amax[rnow]&&j>=lnow&&j<=rnow){
i=j;
break;
}
}
sum+=a[i];
lnow=l[i];
rnow=r[i];
int j=0;
for (int k=1;k<=m;k++){
if (b[k]==bmin[rnow]&&k>=lnow&&k<=rnow){
j=k;
break;
}
}
o-=b[j];
if (o<=0){
break;
}
lnow=l1[j];
rnow=r1[j];
}
cout<<sum;
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...