Описание и задача
В этой задаче вы должны построить предложение русского языка, которое говорит о себе правду, только правду, и ничего кроме правды. Это предложение должно содержать в себе информацию о количестве букв, слов, пробелов, запятых, точек, кавычек в предложении и о количестве вхождений в предложение всех его слов. Оно должно быть орфографически и пунктуационно правильным, а также корректным с точки зрения русского языка. Все числительные должны быть записаны словами

Моделью такого предложения (не удовлетворяющей лишь свойству правдивости) может служить такой текст:

В этом предложении сто букв, двадцать слов, десять запятых,
двадцать пробелов, десять кавычек, одна точка, два слова "В",
два слова "этом", два слова "предложении", два слова "сто", два
слова "букв", два слова "двадцать", десять слова "десять",
десять слов "слова", два слова "слов", два слова "запятых", два
слова "пробелов", два слова "кавычек", два слова "одна", два
слова "точка", десять слов "два".

Выходные данные
В выходной файл нужно выдать правдивое предложение. Предложение должно быть не длиннее 10 килобайт. Оно может содержать также иную (правдивую) информацию. Предложение должно быть как можно короче




Идеи
Особых идей нет. Главное - сообразительность

Комментарии

Возьмем в качестве исходного любое предложение русского языка. На каждом очередном шаге будем строить предложение, описывающее предыдущее (см. условие задачи). Рано или поздно на очередной итерации мы либо получим предложение, совпадающее с предыдущим (и тогда задача решена), либо войдем в цикл большей длины. В последнем случае (можно не проверять, что мы зациклились, а заменить эту проверку тем условием, что было выполнено достаточно большое число итераций) повторим процесс, отталкиваясь от другого исходного предложения. Эксперименты показывают, что правдивое предложение после нескольких таких попыток обязательно будет построено. Шансов на успех больше в том случае, если исходные предложения были истинны

Когда "правдивое предложение" найдено, можно написать новую программу, которая станет окончательным решением задачи. В ней полученное предложение нужно записать в виде одной или нескольких строковых констант, а саму программу устроить так, чтобы при запуске она просто выдавала эти константы

 



Решение

begin
assign (output, '
sentence.out'); rewrite (output);
writeln('В этом предложении одна тысяча восемьдесят семь букв, ');
writeln('двести пять слов, двести четыре пробела, ');
writeln('сто двадцать кавычек, шестьдесят пять запятых, одна точка, ');
writeln('два слова "В", ');
writeln('два слова "этом", ');
writeln('два слова "предложении", ');
writeln('три слова "одна", ');
writeln('два слова "тысяча", ');
writeln('два слова "восемьдесят", ');
writeln('два слова "семь", ');
writeln('два слова "букв", ');
writeln('три слова "двести", ');
writeln('три слова "пять", ');
writeln('шесть слов "слов", ');
writeln('шесть слов "четыре", ');
writeln('два слова "пробела", ');
writeln('два слова "сто", ');
writeln('три слова "двадцать", ');
writeln('два слова "кавычек", ');
writeln('два слова "шестьдесят", ');
writeln('два слова "запятых", ');
writeln('два слова "точка", ');
writeln('пятнадцать слов "два", ');
writeln('двадцать четыре слова "слова", ');
writeln('шесть слов "три", ');
writeln('четыре слова "шесть", ');
writeln('два слова "пятнадцать", ');
writeln('три слова "тридцать", ');
writeln('тридцать четыре слова "одно", ');
writeln('тридцать четыре слова "слово", ');
writeln('одно слово "шестнадцать", ');
writeln('одно слово "буквы", ');
writeln('одно слово "девять", ');
writeln('одно слово "четырнадцать", ');
writeln('одно слово "семьдесят", ');
writeln('одно слово "восемь", ');
writeln('одно слово "буква", ');
writeln('одно слово "пробелов", ');
writeln('одно слово "один", ');
writeln('одно слово "пробел", ');
writeln('одно слово "восемнадцать", ');
writeln('одно слово "запятые", ');
writeln('одно слово "пятьдесят", ');
writeln('одно слово "девяносто", ');
writeln('одно слово "семнадцать", ');
writeln('одно слово "двенадцать", ');
writeln('одно слово "одиннадцать", ');
writeln('одно слово "девятнадцать", ');
writeln('одно слово "две", ');
writeln('одно слово "сорок", ');
writeln('одно слово "девятьсот", ');
writeln('одно слово "десять", ');
writeln('одно слово "восемьсот", ');
writeln('одно слово "кавычки", ');
writeln('одно слово "запятая", ');
writeln('одно слово "семьсот", ');
writeln('одно слово "шестьсот", ');
writeln('одно слово "четыреста", ');
writeln('одно слово "триста", ');
writeln('одно слово "Жюри", ');
writeln('одно слово "согревает", ');
writeln('одно слово "и", ');
writeln('одно слово "холода".');
close(output)
end
.

 


© Особенности национальных задач по информатике