社区讨论
代码求调
AT_abc294_e[ABC294E] 2xN Grid参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lwho1rlw
- 此快照首次捕获于
- 2024/05/22 18:13 2 年前
- 此快照最后确认于
- 2024/05/22 20:07 2 年前
错了一个点,rt。
CPP#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=3e5+10;
int ll,n1,n2;
int v[3][maxn],l[3][maxn];
int s1[maxn],s2[maxn];
signed main(){
cin >> ll >> n1 >> n2;
for(int i=1;i<=n1;++i){cin >> v[1][i] >> l[1][i];s1[i]=s1[i-1]+l[1][i];}
for(int i=1;i<=n2;++i){cin >> v[2][i] >> l[2][i];s2[i]=s2[i-1]+l[2][i];}
int idx=1;s2[n2+1]=s2[n2];int ans=0;
for(int i=1;i<=n1;++i){
while(idx>=1 && s2[idx]>=s1[i-1]+1)idx--;
while(idx<=n2 && s1[i-1]+1>s2[idx])idx++;
while(idx<=n2 && s1[i]>s2[idx-1]+1){
if(v[1][i]==v[2][idx]){
ans+=(min(s1[i],s2[idx])-max(s2[idx-1]+1,s1[i-1]+1)+1);
}
idx++;
}
}
cout << ans << endl;
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...