program ScoreAnalysis;

const
  MAX = 100;

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

begin
  writeln('学生人数を入力してください（10人以上）');
  readln(n);

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

  sum := 0;
  pass := 0;

  writeln('点数を入力してください');

  for i := 1 to n do
  begin
    write(i, '人目: ');
    readln(score[i]);

    sorted[i] := score[i];
    sum := sum + score[i];

    if score[i] >= 60 then
      pass := pass + 1;
  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;

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

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

  writeln;
  writeln('各学生の偏差値');
  for i := 1 to n do
    writeln(i, '人目 : ', hensachi[i]:0:2);

end.