#include #define TAG 1 #define TENY 2 #define SZAM 3 int n; char line[300]; int m; char tok[300]; int zj; int tag(char*,char*); int teny(char*,char*); int kif(char *out,char *o) { int mode,mode2; char t1[300],t2[300],op,o2; mode=tag(t1,o); out+=sprintf(out,"%s",t1); while ((line[m]=='+')||(line[m]=='-')) { zj=0; *o=op=line[m++]; mode=TAG; mode2=tag(t2,&o2); if ((zj==1)&&(op=='-')&&(/*(o2=='+')||(o2=='-')*/mode2==TAG)) out+=sprintf(out,"%c(%s)",op,t2); else out+=sprintf(out,"%c%s",op,t2); } return mode; } int tag(char *out,char *o) { int mode1,mode2,mode; char t1[300],t2[300],op,o2; int volt=0; mode=mode1=teny(t1,o); while ((line[m]=='*')||(line[m]=='/')) { if (volt==0) { volt=1; if (mode1==TAG) out+=sprintf(out,"(%s)",t1); else out+=sprintf(out,"%s",t1); } zj=0; *o=op=line[m++]; mode=TENY; mode2=teny(t2,&o2); if (mode2==TAG) out+=sprintf(out,"%c(%s)",op,t2); if (mode2==TENY) { if ((zj==1)&&(op=='/')) out+=sprintf(out,"%c(%s)",op,t2); else out+=sprintf(out,"%c%s",op,t2); } if (mode2==SZAM) { out+=sprintf(out,"%c%s",op,t2); } } if (volt==0) { sprintf(out,"%s",t1); } return mode; } int teny(char *out,char *o) { int mode; char t1[300],v; if ((line[m]>='a')&&(line[m]<='z')) { v=line[m++]; *o=0; sprintf(out,"%c",v); mode=SZAM; } else { /*if (line[m]!='(') printf("Error %d ",m);*/ m++; mode=kif(t1,o); /*if (line[m]!=')') printf("Error2 %d ",m);*/ m++; zj=1; sprintf(out,"%s",t1); } return mode; } int main() { int i; char t[300],o; scanf("%d\n",&n); for (i=0;i