这什么离谱BUG
查看原帖
这什么离谱BUG
1448541
Dianna楼主2025/6/17 22:21

不是我修改了好几遍一直在错,下载了一个数据点发现我的输出和样例输出一样,有没有大佬指导一下谢谢。

#include<bits/stdc++.h>
using namespace std;
const int N=1500001;
int T,x[1500001],y[1500001],l1,l2,l;
string s1,s2;
void dfs(string s,int f[]){
	int cnt=1;
	for(int i=0;i<s.size();i++){
		if(s[i]=='(') cnt++;
		else{
			cnt--;
			if(s[i-1]=='('){
				int k=cnt;
				f[k]++;
				while(f[k]>=2){
					f[k]=0;
					f[k+1]++;
				}
			}
		}
	}
}
int cmp(int a[],int b[]){
	for(int i=N;i>=1;i--){
		if(a[i]>b[i]) return 2;
		if(a[i]<b[i]) return 0;
	}
	return 1;
}
int main(){
	scanf("%d",&T);
	while(T--){
		memset(x,0,sizeof(x));
		memset(y,0,sizeof(y));
		l1=0,l2=0,l=1;
		cin>>s1>>s2;
		dfs(s1,x);
		dfs(s2,y);
		int pd=cmp(x,y);
		if(pd==0) printf("<\n");
		if(pd==1) printf("=\n");
		if(pd==2) printf(">\n");
	}
	return 0;
}

解决必关

2025/6/17 22:21
加载中...