社区讨论
为什么错?(好像被做局了)
P10132[USACO24JAN] Cannonball B参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mdwyad8z
- 此快照首次捕获于
- 2025/08/04 18:11 7 个月前
- 此快照最后确认于
- 2025/11/04 03:13 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
const long long N=1e6+10;
struct person{
int op,sum,z;
int v=0;
}a[N];
int main(){
long long n,s,ans=0,noww=1,d=1; // d=1向右, d=0向左
cin>>n>>s;
for(long long i=1;i<=n;i++){
cin>>a[i].op>>a[i].sum;
a[i].z=1;
}
long long i=s;
if(a[i].op==0){
noww+=a[i].sum;
d*=-1;
}
else if(a[i].op==1&&noww>=a[i].sum&&a[i].z==1){
ans++;
a[i].z=0;
}
while(i>=1&&i<=n){
a[i].v++;
if(a[i].v>3)
break;
if(a[i].op==1&&noww>=a[i].sum&&a[i].z==1){
ans++;
a[i].z=0;
}
else if(a[i].op==0){
noww+=a[i].sum;
d*=-1;
}
i+=d*noww;
}
cout<<ans;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...