为什么错?(好像被做局了)
查看原帖
为什么错?(好像被做局了)
1545314
Westbrook_楼主2025/8/4 18:10
#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;
}
2025/8/4 18:10
加载中...