Задача 2 Урок 20

Задача 2 Урок 20

У вас есть текстовый файл с информацией об итогах соревнований (каждая строка имеет формат: имя + произвольное число пробелов + балл 1 + произвольное число пробелов + балл 2):

Вася 16 485
Коля 17 555
Юра 18 61
..........

-- где:
слева указаны имена участников, а справа число баллов.
Первое число в каждой строке -- штрафные баллы набранные участниками, а второе число -- "положительные баллы", то есть если у нас есть строка:

Vasya N M

где N
-- число шрафных баллов, а M - число баллов положительных, то итоговая оценка Васи Z вычисляется как разность:
Z=M−N.

Напишите программу, которая определяет победителя и его итоговый балл (прочитав данный файл построчно).

var f:text; s,name,xpros,xcons,win:string; k,i,j,t,l,pros,cons,max:integer;
  im:array [1..3] of string;
  bal:array [1..3] of integer;
begin
  name:='C:\Users\test\Desktop\TraliVali\file.txt';
  assign(f,name);
  reset(f);
  j:=1;
  while not eof(f) do
  begin
    readln(f, s);
    k:=0;
    for i:=1 to length(s) do
    begin
      if (s[i]>='0') and (s[i]<='9') then
      begin
      k+=1;
        if k=1 then
          t:=0;
        if t>k then
          xpros+=s[i]
        else
          xcons+=s[i];
      end
      else if s[i]<>' ' then
        im[j]+=s[i];
      t+=1;
    end;
    val(xcons,cons,l);
    val(xpros,pros,l);
    bal[j]:=pros-cons;
    j+=1;
    xpros:='0';
    xcons:='0';
  end;
  max:=bal[1];
  win:=im[1];
  for j:=2 to high (bal) do
    if bal[j]>max then
    begin
      max:=bal[j];
      win:=im[j];
    end;
  writeln(win,' ',max);
  readln();
end.