program SeisekiSyukei15Unbiased;

const
  MAX_STUDENTS = 15;

type
  IntArray = array[1..MAX_STUDENTS] of integer;

var
  scores, sortedScores: IntArray;
  i, gokakuCount, totalSum: integer;
  heikin, tyuoti, saikou, saitou, hyojunHensa: real;

procedure BubbleSort(var arr: IntArray; n: integer);
var
  i, j, temp: integer;
begin
  for i := 1 to n - 1 do
    for j := 1 to n - i do
      if arr[j] > arr[j+1] then
      begin
        temp := arr[j];
        arr[j] := arr[j+1];
        arr[j+1] := temp;
      end;
end;

function CalculateSum(arr: IntArray; n: integer): integer;
var
  i, total: integer;
begin
  total := 0;
  for i := 1 to n do
    total := total + arr[i];
  CalculateSum := total;
end;

function FindMax(arr: IntArray; n: integer): integer;
var
  i, m: integer;
begin
  m := arr[1];
  for i := 2 to n do
    if arr[i] > m then m := arr[i];
  FindMax := m;
end;

function FindMin(arr: IntArray; n: integer): integer;
var
  i, m: integer;
begin
  m := arr[1];
  for i := 2 to n do
    if arr[i] < m then m := arr[i];
  FindMin := m;
end;

function CountGokaku(arr: IntArray; n: integer): integer;
var
  i, count: integer;
begin
  count := 0;
  for i := 1 to n do
    if arr[i] >= 60 then
      count := count + 1;
  CountGokaku := count;
end;

// 【修正箇所】分母を n - 1 (14) にしてExcel等の統計関数と完全に一致させる標準偏差関数
function CalculateStdDev(arr: IntArray; n: integer; avg: real): real;
var
  i: integer;
  sumOfSquares, diff: real;
begin
  sumOfSquares := 0.0;
  for i := 1 to n do
  begin
    diff := arr[i] - avg;
    sumOfSquares := sumOfSquares + (diff * diff);
  end;
  // ここを n - 1 に変更しています
  CalculateStdDev := sqrt(sumOfSquares / (n - 1));
end;

procedure PrintHensati(arr: IntArray; n: integer; avg, stdDev: real);
var
  i: integer;
  h: real;
begin
  writeln('--- 各自の偏差値（入力順） ---');
  for i := 1 to n do
  begin
    if stdDev = 0 then
      h := 50.0
    else
      h := 50.0 + 10.0 * (arr[i] - avg) / stdDev;
    writeln('学生 ', i, ': 点数 = ', arr[i], ' -> 偏差値 = ', h:0:2);
  end;
end;

begin
  for i := 1 to MAX_STUDENTS do
  begin
    readln(scores[i]);
    sortedScores[i] := scores[i];
  end;

  totalSum := CalculateSum(scores, MAX_STUDENTS);
  heikin := totalSum / MAX_STUDENTS;
  saikou := FindMax(scores, MAX_STUDENTS);
  saitou := FindMin(scores, MAX_STUDENTS);
  gokakuCount := CountGokaku(scores, MAX_STUDENTS);
  hyojunHensa := CalculateStdDev(scores, MAX_STUDENTS, heikin);

  BubbleSort(sortedScores, MAX_STUDENTS);
  tyuoti := sortedScores[8]; 

  writeln('件数=', MAX_STUDENTS);
  writeln('平均=', heikin:0:2);
  writeln('中央値=', tyuoti:0:2);
  writeln('最高点=', saikou:0:2);
  writeln('最低点=', saitou:0:2);
  writeln('標準偏差=', hyojunHensa:0:2);
  writeln('合格者数=', gokakuCount);
  writeln;

  PrintHensati(scores, MAX_STUDENTS, heikin, hyojunHensa);
end.