top++;s->ch[s->top]=c;}charPOP(seqstack*s){return(s->ch[s->top--]);}charGETTOP(seqstack*s){retur" />

#include char s[1000000]; int main() { int i,m,n,j,sum=0; scanf("%d",&m); getchar(); for(i=1;i<=m;i++) { gets(s); n=strlen(s); sum=0; for(j=0;j sum+=s[j]-48; sum%=9; } printf("%d\\n",sum); } return 0; }*/ /*#include #include char a[1000000]; int main() { int m; scanf("%d",&m); while(m--) { getchar(); int n,sum=0,i; scanf("%s",a); n=strlen(a); for(i=0;i printf("%d\\n",sum%9); } return 0; }*/ /*#include #include char s[43]; int main() { int i,n,m,j; scanf("%d",&n); getchar(); for(i=1;i<=n;i++) { gets(s); m=strlen(s); for(j=m-1;j>=0;j--) { if((s[j]>=65&&s[j]<=90)||(s[j]>=97&&s[j]<=122)) printf("%c",s[j]); } printf("\\n"); } return 0; }*/ #include #include #define maxn 10010 char st[maxn]; typedef struct stack { char ch[maxn]; int top; int size; }seqstack; void INITSTACK(seqstack *s) { s->top=-1; s->size=maxn; } int EMPTYSTACK(seqstack *s) { if(s->top==-1) return 1; else return 0; } void PUSH(seqstack *s,char c) { s->top++; s->ch[s->top]=c; } char POP(seqstack *s) { return (s->ch[s->top--]); } char GETTOP(seqstack *s) { return (s->ch[s->top]); } int main() { int i,n; int match(char st[]); scanf("%d",&n); getchar(); for(i=1;i<=n;i++) { gets(st); if(match(st)==1) printf("Yes\\n"); else printf("No\\n"); } return 0; } int match(char st[]) { int i; char ch1; seqstack *s1; INITSTACK(s1); ch1=*st++; while(ch1!='\\0') { switch(ch1) { case '{': case '[': case'(': { PUSH(s1,ch1); break; } case '}': { if(!EMPTYSTACK(s1)&&GETTOP(s1)=='{') i=POP(s1); else return 0; break; } case ']': { if(!EMPTYSTACK(s1)&&GETTOP(s1)=='[') i=POP(s1); else return 0; break; } case ')': { if(!EMPTYSTACK(s1)&&GETTOP(s1)=='(') i=POP(s1); else return 0; break; } } ch1=*st++; } if(EMPTYSTACK(s1)) return 1; else return 0; }
