const
nn = 25; // максимум слов
var
a: array[1..nn] of string[20];
procedure Parser(s: string; var k: integer);
var
i,n: integer;
w: string;
begin
w := '';
k := 0;
n := length(s);
for i := 1 to n do
if s[i] <> ' ' then w := w + s[i]
else
if length(w) > 0 then
begin
k := k + 1;
a[k] := w;
w := '';
end;
if length(w) > 0 then
begin
k := k + 1;
a[k] := w;
end;
end;
var
s: string[254];
i, k: integer;
begin
Readln(s);
Parser(s, k);
for i := 1 to k do
if Pos('ар', a[i]) > 0 then
write(a[i], ' ');
end.
Программа уровня Турбо Паскаль
Составим таблицу, и заполним её ячейки плюсами и минусами (запись "-2" обозначает "ставим минус в ячейку 2"):
1} С не знает перc: -2
2} для М родной тур: +8
3} Ю не знает по-тур ни слова: -16
4} М нужен переводчик, чтоб говорить с Ю, значит Ю не знает тур: -12
5} никого, кто владел бы одновременно и арм, и тур -> М не знает арм: -5
6} А говорит по-перс: +10
7} C переводчик между М и А, но А говорит по перс, значит М не знает перс: -6
8} второй язык М - греческий: +7
9} М и А нуждаются в переводчике, значит А не знает гре: -11
10} второй язык А - арм: +9
11} С переводил для А, значит он знает арм: +1
12} нет общего языка для С А Ю, значит Ю не знат арм: -13
13} Ю знает два языка - перс и гре: +14 +15
14} нет общего языка для С А Ю, значит С не знает гре: -3
15} второй язык С - тур: +4
Салал - армянский и турецкий
Мохаммед - греческий и турецкий
Абдулла - армянский и персидский
Юсуф - персидский и греческий
Procedure DivideALine(Line:String);
Var
I:Integer;
W:String;
Begin
If Line[Length(Line)]<>' '
Then
Line:=Line+' ';
W:=' ';
For I:=1 To Length(Line) Do
If Line[I]<>' '
Then
W:=W+Line[I]
Else
Begin
WriteLn(W);
W:='';
End;
End;