program ScoreAnalysis;

const
  MAX = 100;

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

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

  { 10人未満なら終了 }
  if n < 10 then
  begin
    writeln('学生数は10人以上で入力してください。');
    halt;
  end;

  sum := 0;
  passCount := 0;

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

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

    sum := sum + score[i];

    if score[i] >= 60 then
      passCount := passCount + 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 + (score[i] - avg) * (score[i] - avg);

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

  { ソート }
  for i := 1 to n - 1 do
    for j := 1 to n - i do
      if sorted[j] > sorted[j + 1] then
      begin
        temp := sorted[j];
        sorted[j] := sorted[j + 1];
        sorted[j + 1] := 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;
  writeln('平均 = ', avg:0:2);
  writeln('中央値 = ', median:0:2);
  writeln('最高点 = ', maxScore:0:2);
  writeln('最低点 = ', minScore:0:2);
  writeln('標準偏差 = ', stddev:0:2);
  writeln('合格者数 = ', passCount);

  writeln;
  writeln('偏差値');

  for i := 1 to n do
  begin
    if stddev = 0 then
      hensachi := 50
    else
      hensachi := 50 + 10 * (score[i] - avg) / stddev;

    writeln('学生', i, ' : ', hensachi:0:2);
  end;
end.