Вот, это для первого и второго соответственно =)
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
const
n=10;
type
Sot=record
fam:string;
zp:integer;
end;
begin
var Sotr:=new Sot[n];
Writeln('Вводите фамилию и через пробел зарплату');
for var i:=0 to n-1 do begin
var s:=ReadlnString(i+1+':');
var ms:=s.Split;
(Sotr[i].fam,Sotr[i].zp):=(ms[0],StrToInt(ms[1]));
end;
var r:=Sotr.OrderBy(x->x.zp).First;
WritelnFormat('{0} получает всего лишь {1}',r.fam,r.zp)
end.
<u><em>Тестовое решение:</em></u>
Вводите фамилию и через пробел зарплату
1: Иванов 32000
2: Петров 28000
3: Козлов 34000
4: Сидорова 41400
5: Пупкин 30000
6: Кузьмина 36000
7: Васечкин 29700
8: Бененсон 32500
9: Паутова 41000
10: Ромашкин 36400
Петров получает всего лишь 28000
512Кб = 524288 байт = 4194304 бит
Е<span>сли в алфавите 64 символа, то каждый знак кодируется 6 битами, потому что 64 = 2^6. </span>
<span>20 символов по 6 бит содержат 20*6 = 120 бит = 120/8 = 15 байт.</span>