program ideone;
begin
	(* yoprogram GradeAnalysis;
{$MODE OBJFPC}

uses 
  math, sysutils;

var
  // 元の点数データ
  originalScores: array[0..9] of Double = (60, 70, 80, 90, 50, 40, 100, 85, 75, 65);
  // ソート計算用配列
  sortedScores: array[0..9] of Double;
  i, j, passCount: Integer;
  sum, mean, median, maxScore, minScore, stdDev, temp: Double;

begin
  // 1. 各種計算の準備
  sum := 0;
  passCount := 0;
  for i := 0 to 9 do
  begin
    sortedScores[i] := originalScores[i]; 
    sum := sum + originalScores[i];
    if originalScores[i] >= 60 then Inc(passCount);
  end;

  mean := sum / 10;

  // 標準偏差の計算 (手動計算)
  sum := 0;
  for i := 0 to 9 do
    sum := sum + sqr(originalScores[i] - mean);
  stdDev := sqrt(sum / 10);

  // 2. 中央値などを出すためのソート
  for i := 0 to 8 do
    for j := i + 1 to 9 do
      if sortedScores[i] > sortedScores[j] then
      begin
        temp := sortedScores[i];
        sortedScores[i] := sortedScores[j];
        sortedScores[j] := temp;
      end;

  minScore := sortedScores[0];
  maxScore := sortedScores[9];
  median := (sortedScores[4] + sortedScores[5]) / 2;

  // 3. 結果の出力（すべて英語にしました）
  WriteLn('Average: ', mean:0:2);
  WriteLn('Median: ', median:0:2);
  WriteLn('Max Score: ', maxScore:0:2);
  WriteLn('Min Score: ', minScore:0:2);
  WriteLn('Std Deviation: ', stdDev:0:2);
  WriteLn('Passed Count: ', passCount);
  WriteLn('--- Deviation Scores per Student ---');
  
  for i := 0 to 9 do
  begin
    WriteLn('Student ', i+1, ': ', (50 + 10 * (originalScores[i] - mean) / stdDev):0:2);
  end;
  
  // 画面を一時停止する
  ReadLn;
end.ur code goes here *)
end.