fork download
  1. program rollercoaster3;
  2. var N,K,i,countH, speed :int64;
  3. S : Ansistring;
  4. roller : array[1..100] of int64;
  5.  
  6.  
  7. begin
  8. (*assign(input, 'input.txt'); reset(input);
  9.   assign(output, 'output.txt'); rewrite(output);*)
  10.  
  11. ReadLn(N);
  12.  
  13. ReadLn(S);
  14. K := 0; countH:=0; speed:=0;
  15.  
  16. { INSERT YOUR CODE HERE }
  17. if S[1]='U' then begin K:=-1; WriteLn(K); exit; end;
  18.  
  19. for i:=1 to N do
  20. Case S[i] of
  21. 'D' : roller[i]:=9;
  22. 'U' : roller[i]:=-11;
  23. 'H' : roller[i]:=0;
  24. 'B' : roller[i]:=10;
  25. end;
  26. for i:=1 to N do
  27. begin
  28. if S[i]='H' then countH:=countH+1;
  29. speed:=speed+roller[i];
  30. if speed<=0 then
  31. begin
  32. if countH>0 then
  33. begin
  34. countH:=countH-1;
  35. speed:=speed + 10;
  36. if ((speed=0) and (countH>0)) then begin speed:=speed + 10; K:=K+1; countH:=countH-1;end
  37. else if ((speed<=0) and ((countH<=0) or (i=N))) then begin K:=-1; WriteLn(K); exit; end;
  38. K:=K+1;
  39. end
  40. else begin K:=-1; WriteLn(K); exit; end;
  41. end;
  42. end;
  43. WriteLn(K);
  44. end.
Success #stdin #stdout 0s 5324KB
stdin
23
HHHHHHHHHHHHUUUUUUUUUUD  
  
stdout
12