Вам дана строка S, состоящая только из пробелов и строчных латинских букв. Строка представляет из себя предложение, т.е. несколько слов, состоящих из букв и разделённых между собой пробелами. Ваша задача — удалить из строки все слова, которые встречаются в ней более одного раза и вывести получившуюся строку, т.е. оставить в строке только слова, встречающиеся в строке только один раз. Формат входных данных
В первой строке входных данных лежит строка S. Длина строки S не превосходит 100 символов. Гарантируется, что в строке есть хотя бы одно слово, встречающееся только один раз.
Формат выходных данных
Выведите единственную строку — S после удаления всех слов, встречающихся в ней более одного раза.
n = 10;//предельное количество точек
var
a: array[1..2 * n] of real;
x, y, l,lmax, lmin: real;
i, j, k: integer;
begin
writeln('Введите количество точек (не более ', n, ')');
readln(k);
writeln('Вводите координаты точек (x,y) попарно');
lmax := 0;
lmin := 1e10;
for i := 1 to k do
begin
j := 2 * i - 1;
read(a[j], a[j + 1]);
l := sqr(a[j]) + sqr(a[j + 1]); //квадратами расстояния до точки
if lmax<l then lmax:=l;
if lmin>l then lmin:=l
end;
writeln;
writeln('Все точки находятся внутри кольца с радиусами ',sqrt(lmin),', ',sqrt(lmax))
end.
Тестовое решение:
Введите количество точек (не более 10)
5
Вводите координаты точек (x,y) попарно
3 6 2 5 -4 -3 5 7 3 3
Все точки находятся внутри кольца с радиусами 4.24264068711928, 8.60232526704263
var
i:integer;
begin
for i:=1 to 10000 do // по условиям задачи i:=1 to 999
if (i mod 43 = 41) and (i mod 47 = 43) then
writeln(i);
end.
Результаты вывода:
1030
3051
5072
7093
9114
Так что минимальное число, удовлетворяющее требованиям, 1030, но оно не трехзначное
Вот более продвинутый алгоритм, делающий то же самое:
var
n43:integer;
begin
n43:=127;
repeat
n43:=n43+43;
until (n43 mod 43 = 41) and (n43 mod 47 = 43); //добавить and (n43<1000)
writeln(n43)
end.
Результат вывода:
1030