fork download
  1. Program brackets2;
  2. {$H+}
  3. const
  4. MAXN = 500;
  5. var
  6. N, i, h, pos, tot, somma : LongInt;
  7. A : Array[0..MAXN-1] of LongInt;
  8. ans : AnsiString;
  9.  
  10. begin
  11. (*assign(input, 'input.txt'); reset(input);
  12.   assign(output, 'output.txt'); rewrite(output);*)
  13. ReadLn(N);
  14. somma:=0;
  15. for i:=0 to N-1 do begin Read(A[i]); somma:=somma+A[i]; end;
  16. ReadLn();
  17. ans := '';
  18. for i:=1 to A[0] do insert('(',ans,i);
  19. pos:=A[0]+1; tot:=A[0];
  20. for i:=1 to N-1 do begin
  21. if A[i]>tot then begin for h:=1 to A[i] do insert('(',ans,pos); tot:=tot+A[i]; pos:=pos+A[i];end
  22. else begin if tot+A[i]>=((somma-pos+1) div 2) then begin for h:=1 to A[i] do insert(')',ans,pos); tot:=tot-A[i]; pos:=pos+A[i]; writeln (tot,' ',pos);end
  23. else begin if A[i]=tot then begin for h:=1 to A[i] do insert(')',ans,pos); tot:=tot-A[i]; pos:=pos+A[i]; writeln (tot,' ',pos);end
  24. else begin for h:=1 to A[i] do insert('(',ans,pos); tot:=tot+A[i]; pos:=pos+A[i];end;
  25. end;
  26. end;
  27. write (ans); end; writeln;
  28. if tot=0 then WriteLn(ans)
  29. else Writeln(-1);
  30. end.
Success #stdin #stdout 0.01s 5280KB
stdin
4
3 1 1 1



stdout
2 5
((()1 6
((())0 7
((()))
((()))