fork download
  1. program rollercoaster3;
  2. var N,K,i,countH, speed :int64;
  3. S : Ansistring;
  4. roller : array[1..100] of int64;
  5. velocita : array[0..100] of int64;
  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; velocita[0]:=0;
  15.  
  16. { INSERT YOUR CODE HERE }
  17. if S[1]='U' then begin K:=-1; WriteLn(K); exit; end;
  18. for i:=1 to N do
  19. Case S[i] of
  20. 'D' : roller[i]:=9;
  21. 'U' : roller[i]:=-11;
  22. 'H' : roller[i]:=0;
  23. 'B' : roller[i]:=10;
  24. end;
  25. for i:=1 to N do
  26. begin
  27. if S[i]='H' then countH:=countH+1;
  28. speed:=speed+roller[i];
  29. if speed<=0 then
  30. begin
  31. if countH>0 then
  32. begin
  33. countH:=countH-1;
  34. speed:=speed + 10;
  35. K:=K+1;
  36. end
  37. else begin K:=-1; WriteLn(K); break; end; end;
  38. velocita[i]:=speed;
  39. end;
  40. for i:=1 to N do write(velocita[i],' '); writeln;
  41. if velocita[N]<=0 then K:=-1;
  42. WriteLn(K);
  43. end.
Success #stdin #stdout 0s 5320KB
stdin
22
BBBBBBBBBHUUUUUUUUUUB   
stdout
-1
10 20 30 40 50 60 70 80 90 90 79 68 57 46 35 24 13 2 1 0 0 0 
-1