Я вот тоже Вышел порешать =).
var p: array [1..1000] of record
slovo:string;
k:integer;
end;
N,i,j,max:integer;
c:char;
a:array [97..122] of integer;
BEGIN
max:=0;
readln(N);
for i:=1 to N do
begin
p[i].slovo:='';
repeat
read(c);
p[i].slovo:=p[i].slovo+c
until c=' ';
readln(p[i].k);
for j:=1 to length(p[i].slovo) do
if (ord(p[i].slovo[j])>=97) and (ord(p[i].slovo[j])<=122) then
a[ord(p[i].slovo[j])]:=a[ord(p[i].slovo[j])]+p[i].k;
end;
for j:=97 to 122 do
if a[j]>max then
max:=a[j];
write(max);
end.
n=24
Объяснение:
В начале программы дается s:= 20; n:=0;
Далее начинается цикл, который продолжается пока s*s будет больше 150(150<s*s). s*s=20*20=400(явно больше 150).
Выполняем действия:
s=s-1=19
n=n+3=3
Возвращаемся к условию цикла 150<s*s(19*19=369)
Снова выполняем действия.
И так пока s не примет значение 12(потому что 12*12 = 144, что меньше 150).
s 20 19 18 17 16 15 14 13 12
n 0 3 6 9 12 15 18 21 24(ответ)