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. begin
  7. (*assign(input, 'input.txt'); reset(input);
  8.   assign(output, 'output.txt'); rewrite(output);*)
  9.  
  10. ReadLn(N);
  11.  
  12. ReadLn(S);
  13. K := 0; countH:=0; speed:=0;
  14.  
  15. { INSERT YOUR CODE HERE }
  16. if S[1]='U' then begin K:=-1; WriteLn(K); exit; end;
  17. for i:=1 to N do
  18. Case S[i] of
  19. 'D' : roller[i]:=9;
  20. 'U' : roller[i]:=-11;
  21. 'H' : roller[i]:=0;
  22. 'B' : roller[i]:=10;
  23. end;
  24. for i:=1 to N do
  25. begin
  26. if S[i]='H' then countH:=countH+1;
  27. speed:=speed+roller[i];
  28. if speed<=0 then
  29. begin
  30. if speed+10>0 then
  31. begin
  32. if countH>0 then
  33. begin
  34. countH:=countH-1;
  35. speed:=speed + 10;
  36. K:=K+1;
  37. end
  38. else
  39. begin
  40. k:=-1;
  41. break;
  42. end;
  43. end
  44. else
  45. begin k:=-1; break; end;
  46. end;
  47. end;
  48. WriteLn(K);
  49. end.
  50.  
  51.  
Success #stdin #stdout 0.01s 5288KB
stdin
22
BBBBBBBBBBHHUUUUUUUUUB

stdout
0