fork download
  1. {$MODE OBJFPC}{$LONGSTRINGS ON}
  2.  
  3. uses
  4. SysUtils;
  5.  
  6. {
  7.   parameter sample meaning
  8.  
  9.   ALevel 28 pre-max level id
  10.   AScore 991.000 pre-max score
  11.   AGainLines 4 final line clear count
  12.   AGainScore 34.800 final line clear score
  13.   }
  14. function GetMaxOutResult(ALevel, AScore, AGainLines, AGainScore: Integer): String;
  15. var
  16. ScoreTotal, ScoreOvershot: Integer;
  17. PercentOvershot, FractionalLines: Single;
  18. begin
  19. ScoreTotal := AScore + AGainScore; // 1.025.800 points
  20. ScoreOvershot := ScoreTotal - 999999; // 25.801 points
  21.  
  22. PercentOvershot := ScoreOvershot / AGainScore; // 74.14 percent
  23. FractionalLines := AGainLines - AGainLines * PercentOvershot; // 1.03 lines
  24.  
  25. Result := '%.2d+%1.2f'.Format([ALevel, FractionalLines]); // 28+1.03 lines
  26. end;
  27.  
  28. var
  29. ResultString: String;
  30. begin
  31. ResultString := GetMaxOutResult(28, 991000, 4, 34800);
  32. Write(ResultString);
  33. end.
Success #stdin #stdout 0s 4540KB
stdin
Standard input is empty
stdout
28+1.03