|
|
back to boardmy ac solution!!!! var s,ss:string; k:char; p1,p2,i,j:longint; v:array[1..10000] of boolean; Tin:boolean; procedure Tout(ans:string); begin write(ans); halt; end; begin s:=''; while not EOF do begin read(k); if (k<>#13) and (k<>#10) then s:=s+k; end; Tin:=false; p1:=1; fillchar(v,sizeof(v),true); for i:=1 to length(s)-1 do begin if not Tin then if (s[i]='(') and (s[i+1]='*') then begin Tin:=true; p1:=i; end; if Tin then if (i<>p1+1) and (s[i]='*') and (s[i+1]=')') then begin Tin:=false; for j:=p1 to i+1 do v[j]:=false; end; end; if TIn then TOut('NO'); ss:=''; for i:=1 to length(s) do if v[i] then ss:=ss+s[i]; j:=0;s:=ss; fillchar(v,sizeof(v),true); for i:=1 to length(s) do if j<0 then Tout('NO') else if s[i]='(' then inc(j) else if s[i]=')' then dec(j) else if j=0 then v[i]:=false; if j<>0 then Tout('NO'); ss:=''; for i:=1 to length(s) do if v[i] then ss:=ss+s[i]; s:=ss; while pos('(',s)>0 do begin for i:=1 to length(s) do if s[i]='(' then p1:=i; for i:=p1 to length(s) do if s[i]=')' then begin p2:=i; break; end; for i:=p1 to p2 do if not (s[i] in ['=','+','-','*','/','0','1','2','3','4','5','6','7','8','9',')','(']) then Tout('NO'); delete(s,p1,p2-p1+1); end; write('YES'); end. Re: my ac solution!!!! Delete this. What for to spread solution? |
|
|