#include<bits/stdc++.h>
using namespace std;
int a,b;
char s1[3000002];
char s2[3000002];
int comp(char *s,int siz)
{
bool lr=false;
int total=0,square=0;
for(int i=siz-1;i>=0;i--)
{
if(s[i]==')')
{
lr=true;
if(square==0)
{
square=1;
}
else
{
square*=2;
}
}
if(s[i]=='(')
{
if(lr)
{
total+=square;
lr=false;
}
if(square==1)
square=0;
else
square/=2;
}
}
return total;
}
int main()
{
int n=0;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
int len1=0,len2=0;
a=0;
b=0;
fill(s1,s1+strlen(s1),0);
fill(s1,s1+strlen(s2),0);
scanf("%s",s1);
scanf("%s",s2);
len1=strlen(s1);
len2=strlen(s2);
a=comp(s1,len1);
b=comp(s2,len2);
if(a<b)
printf("<\n");
if(a==b)
printf("=\n");
if(a>b)
printf(">\n");
}
}
코드 입력해봐도 테스트 4까지 가능한데
괄호의 값이 int의 범위보다 커질 수도 있죠
그생각을 못하고 있었네요ㅠㅠ 감사합니다