(*
課題：成績集計

入力例
10
80
65
90
55
70
100
40
75
85
60

出力例
平均点: 72.00
中央値: 72.50
最高点: 100
最低点: 40
標準偏差: 18.03
合格者数: 8

AI利用・修正点
・ChatGPTで作成したプログラムを基に、提出用に修正・整理した。
*)

program ideone;

uses Math;

const
  MAX = 100;

var
  score, sorted: array[1..MAX] of Integer;
  n, i, j, temp: Integer;
  sum, avg, variance, sd, median, hensachi: Real;
  maxScore, minScore, passCount: Integer;

begin
  readln(n);

  if n < 10 then
  begin
    writeln('10人以上入力してください。');
    halt;
  end;

  sum := 0;
  passCount := 0;

  for i := 1 to n do
  begin
    readln(score[i]);
    sorted[i] := score[i];
    sum := sum + score[i];

    if score[i] >= 60 then
      Inc(passCount);
  end;

  avg := sum / n;

  maxScore := score[1];
  minScore := score[1];

  for i := 2 to n do
  begin
    if score[i] > maxScore then
      maxScore := score[i];
    if score[i] < minScore then
      minScore := score[i];
  end;

  variance := 0;
  for i := 1 to n do
    variance := variance + sqr(score[i] - avg);

  variance := variance / n;
  sd := sqrt(variance);

  for i := 1 to n - 1 do
    for j := i + 1 to n do
      if sorted[i] > sorted[j] then
      begin
        temp := sorted[i];
        sorted[i] := sorted[j];
        sorted[j] := temp;
      end;

  if n mod 2 = 1 then
    median := sorted[(n + 1) div 2]
  else
    median := (sorted[n div 2] + sorted[n div 2 + 1]) / 2;

  writeln('平均点: ', avg:0:2);
  writeln('中央値: ', median:0:2);
  writeln('最高点: ', maxScore);
  writeln('最低点: ', minScore);
  writeln('標準偏差: ', sd:0:2);
  writeln('合格者数: ', passCount);

  writeln('偏差値');
  for i := 1 to n do
  begin
    if sd = 0 then
      hensachi := 50
    else
      hensachi := 50 + 10 * ((score[i] - avg) / sd);

    writeln(i, '人目: ', hensachi:0:2);
  end;

end.