被hack了,求调
查看原帖
被hack了,求调
1148675
yuanhang10楼主2025/7/22 08:24

代码如下

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,mod=12345678910,ans,a[100005],b;
stack< ll >st,sum,check;
int main(){
  scanf("%lld",&n);
  for(int i=1;i<=n;i++){
  	scanf("%lld",&a[i]);
  }
  for(int i=1;i<=n;i++){//检查括号是否合法
  	if(a[i]==0) check.push(a[i]);
  	else{
  		if(check.size()>0) check.pop();
  		else{
  			printf("0");
  			return 0;
  		}
  	}
  }
  for(int i=1;i<=n;i++){
  	if(a[i]==0){
  		st.push(a[i]);
  		sum.push(0);
  	}
  	else{
  		st.pop();
  		if(sum.top()==0){
  			sum.pop();
  			sum.push(1);
  			
  		}
  		else{
  			b=0;
  			while(sum.top()!=0){
  				b+=sum.top();
  				sum.pop();
  			}
  			sum.pop();
  			sum.push(2*b%mod);
  		}
  		if(st.size()==0){
  			ans=(ans+sum.top())%mod;
  			sum.pop();
  		}
  	}
  }
  printf("%lld",ans);
  return 0;
}
2025/7/22 08:24
加载中...