Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const
- soglas: Set Of Char = ['б', 'в', 'г', 'ж', 'з', 'д', 'й', 'л', 'м', 'н', 'р', 'Б', 'В', 'Г', 'Ж', 'З', 'Д', 'Й', 'Л', 'М', 'Н', 'Р'];
- glasn: Set Of Char = ['а', 'о', 'и', 'е', 'ё', 'э', 'ы', 'у', 'ю', 'я', 'А', 'О', 'И', 'Е', 'Ё', 'Э', 'Ы', 'У', 'Ю', 'Я'];
- var
- a: array[1..100] of string;
- s, s1: string;
- ch, ch1: char;
- i, j, k, l, m, ans, ans1, ans2, g: integer;
- ar: array[1..100] of integer;
- begin
- ans := 0;
- k := 1;
- l := 1;
- read(s);
- for i := 1 to length(s) do
- begin
- if (s[i] = ' ') and ((s[i - 1] <> '.') or (s[i - 1] <> '?') or (s[i - 1] <> '!')) then begin
- a[l] := copy(s, k, i - k);
- k := i + 1;
- l := l + 1;
- end;
- if (s[i] = '.') or (s[i] = '!') or (s[i] = '?') or (s[i] = ',') then begin
- a[l] := copy(s, k, i - k);
- l := l + 1;
- a[l] := copy(s, i, 1);
- l := l + 1;
- k := i + 2;
- end;
- end;
- if (s[length(s)] <> '.') or (s[length(s)] <> '!') or (s[length(s)] <> '?') then
- a[l] := copy(s, k, length(s) - k + 1);
- j := 1;
- while j < l do
- begin
- if (a[j]='.') or (a[j]=',') or (a[j]='!')or (a[j]='?')or (a[j]=':')or (a[j]='') then begin
- for k := j to l - 1 do
- a[k] := a[k + 1];
- l := l - 1;
- end;
- j := j + 1;
- end;
- for j := 1 to l do
- begin
- s := a[j];
- s1 := '';
- for i := length(s) downto 1 do
- s1 := s1 + s[i];
- if s1 = s then ans := 1;
- end;
- if ans = 1 then begin
- for j := 1 to l do
- begin
- s := a[j];
- g := 1;
- while g <= length(s) do
- begin
- if s[g] in soglas then
- ar[j] := ar[j] + 1;
- g := g + 1;
- end;
- end;
- for j := 1 to l do
- begin
- for k := 1 to l - j do
- begin
- if (ar[k] > ar[k + 1]) or ((ar[k] = ar[k + 1]) and (length(a[k]) >length(a[k]))) then begin
- g := ar[k];
- ar[k] := ar[k + 1];
- ar[k + 1] := g;
- s := a[k];
- a[k] := a[k + 1];
- a[k + 1] := s;
- end;
- end;
- end;
- end
- else if ans = 0 then begin
- for j := 1 to l do
- begin
- for k := 1 to l - j do
- begin
- s := a[k];
- s1 := a[k + 1];
- ans1 := 0;
- for i := 1 to length(s) do
- begin
- if ans1 = 0 then begin
- ch := s[i];
- ch1 := s1[i];
- if ord(ch) < 1072 then ch := chr(ord(ch) + 32);
- if ord(ch1) < 1072 then ch1 := chr(ord(ch1) + 32);
- if ord(ch) > ord(ch1) then begin
- s := a[k];
- a[k] := a[k + 1];
- a[k + 1] := s;
- ans1 := 1;
- end;
- end;
- end;
- end;
- end;
- for j := 1 to l do
- begin
- s := a[j];
- g := 1;
- while g <= length(s) do
- begin
- if s[g] in glasn then begin delete(s, g, 1); g := g - 1; end;
- g := g + 1;
- end;
- a[j] := s;
- end;
- end;
- for j := 1 to l do
- writeln(a[j], ' ');
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement