求助一个弱智的问题
查看原帖
求助一个弱智的问题
246331
mystic_qwq楼主2023/10/9 20:53

第一段代码wa,得92分,第二段代码ac,仅仅是读入有所不同,求助大佬,为何如此

#include<stdio.h>
#define P putchar_unlocked
char s[101],g[100],c;
int top,l;
_Bool get[100];
int main(){
  for(;(s[l]=(c=getchar_unlocked()))!='\r'&&c!='\n'&&c!=EOF;++l){
    !top||c=='('||c=='['?g[++top]=l
     :(c==')'&&s[g[top]]=='(')
    ||(c==']'&&s[g[top]]=='[')?--top:(get[l]=1);
  }
  //printf("%s",s);
  while(top)get[g[top--]]=1;
  //for(int i=0;i<l;++i)P((int)get[i]^48);P(10);
  for(int i=0;i<l;/*printf("s[%d]=%c,get[%d]=%d\n",i,s[i],i,(int)get[i]),*/++i)
    !get[i]?P(s[i])
    :(s[i]=='('||s[i]==')')  ?P('('),P(')')//must within ()
    :(s[i]=='['||s[i]==']')&&(P('['),P(']'));
}
#include<stdio.h>
#define P putchar_unlocked
char s[101],g[100],c;
int top,l;
_Bool get[100];
int main(){
  scanf("%s",s),l=strlen(s);
  for(int i=0;i<l;++i){
    !top||s[i]=='('||s[i]=='['?g[++top]=i
     :(s[i]==')'&&s[g[top]]=='(')
    ||(s[i]==']'&&s[g[top]]=='[')?--top:(get[i]=1);
  }
  while(top)get[g[top--]]=1;
  for(int i=0;i<l;++i)
    !get[i]?P(s[i])
    :(s[i]=='('||s[i]==')')  ?P('('),P(')')//must within ()
    :(s[i]=='['||s[i]==']')&&(P('['),P(']'));
}
2023/10/9 20:53
加载中...