var a, b, c, i, n, m, j :integer; s, p, q: string; begin read (s); a:=1;for i:=1 to length (s) do begin if s[i]=' ' then begin b:=i-a; c:=0; p:=copy(s,a,b); a:=i+1; for j:=1 to length (p) do if (p[j]<>'у') and (p[j]<>'У') and (p[j]<>'е') and (p[j]<>'Е') and (p[j]<>'ы') and (p[j]<>'Ы') and (p[j]<>'а') and (p[j]<>'А') and (p[j]<>'о') and (p[j]<>'О') and (p[j]<>'э') and (p[j]<>'Э') and (p[j]<>'я') and (p[j]<>'Я') and (p[j]<>'и') and (p[j]<>'И') and (p[j]<>'') and (p[j]<>'Ю') then inc(c); if c>=m then begin m:=c; q:=p; end; end; end; a:=length (s); while s[a]<>' ' do begin delete (s,a,1); a:=a-1; end; write (s, q); end.
#include "stdafx.h" #include "malloc.h" #include <iostream> using namespace std;
int _tmain(int argc, _TCHAR* argv[]) { // Вводим исходные данные. int m; int n; printf ("Введите количество столбцов? m = "); cin >> m; printf ("Введите количество строк? n = "); cin >> n;
// Инициализируем другие переменные. int xMin = 0, // левая граница спирали xMax = m, // правая граница спирали (не включая ее, поэтому ниже будет использоваться xMax - 1) yMin = 0, // верхняя граница спирали yMax = n, // нижняя граница спирали (не включая ее, поэтому ниже будет использоваться yMax - 1) i = 0, // текущее число x, y; // расходный материал.
// Бесконечный цикл, пока не заполним матрицу. while (1) { // Заполняем верхний ряд слева направо. for (x = xMin; x < xMax; x++) pMatrix[x + yMin * m] = i++; // Заполнили весь верхний ряд. Подвигаем вниз верхнюю границу. yMin ++; // Если верхняя граница совпала с нижней, то заканчиваем цикл. if (yMin == yMax) break;
// Заполняем правый ряд сверху вниз. for (y = yMin; y < yMax; y++) pMatrix[xMax - 1 + y * m] = i++; // Заполнили весь правый ряд. Подвигаем налево правую границу. xMax --; // Если правая граница совпала с левой, то заканчиваем цикл. if (xMax == xMin) break;
// Заполняем нижний ряд справа налево. for (x = xMax - 1; x >= xMin; x--) pMatrix[x + (yMax - 1) * m] = i++; // Заполнили весь нижний ряд. Подвигаем вверх нижнюю границу. yMax --; // Если верхняя граница совпала с нижней, то заканчиваем цикл. if (yMin == yMax) break;
// Заполняем левый ряд снизу вверх. for (y = yMax - 1; y >= yMin; y--) pMatrix[xMin + y * m] = i++; // Заполнили весь левый ряд. Подвигаем направо левую границу. xMin ++; // Если правая граница совпала с левой, то заканчиваем цикл. if (xMax == xMin) break; // если мы все еще здесь, значит идем на очередной виток спирали.. . }
// Есть предположение, что спираль заполнена. Напечатаем ее, посмотреть.. . for (y = 0; y < n; y++) { // Печатаем строку. for (x = 0; x < m; x++) printf ("i, ", pMatrix[x + y * m]); // Переходим на другую строку. printf ("\r\n"); }
// Освобождаем память и выходим. free (pMatrix); pMatrix = 0; }
s, p, q: string;
begin
read (s);
a:=1;for i:=1 to length (s) do
begin
if s[i]=' ' then
begin
b:=i-a;
c:=0;
p:=copy(s,a,b);
a:=i+1; for j:=1 to length (p) do
if (p[j]<>'у') and (p[j]<>'У') and (p[j]<>'е') and (p[j]<>'Е') and (p[j]<>'ы') and (p[j]<>'Ы') and (p[j]<>'а') and (p[j]<>'А') and (p[j]<>'о') and (p[j]<>'О') and (p[j]<>'э') and (p[j]<>'Э') and (p[j]<>'я') and (p[j]<>'Я') and (p[j]<>'и') and (p[j]<>'И') and (p[j]<>'') and (p[j]<>'Ю') then inc(c);
if c>=m then
begin
m:=c;
q:=p;
end;
end;
end;
a:=length (s);
while s[a]<>' ' do
begin
delete (s,a,1);
a:=a-1;
end;
write (s, q);
end.
P.S. Надеюсь на благодарность и лучший ответ.