<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Школа179 - Информатика/Олимпиады/2008/Школьная/Разбор/F</title>
<link>https://server.179.ru/wacko43/?page=Информатика/Олимпиады/2008/Школьная/Разбор/F</link>
<description>История изменений Школа179/Информатика/Олимпиады/2008/Школьная/Разбор/F</description>
<lastBuildDate>Sat, 13 Jun 2026 15:56:25 +0300</lastBuildDate>
<image>
<title>Школа179 - последние комментарии</title>
<link>https://server.179.ru/wacko43/</link>
<url>https://server.179.ru/wacko43/files/wacko4.gif</url>
<width>108</width>
<height>50</height>
</image>
<language>en-us</language>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>WackoWiki R4.3</generator>
<item>
<title>2008-03-04 18:45:43</title>
<link>https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F/show&amp;time=2008-03-04+18%3A45%3A43</link>
<description>&lt;div class="pageBefore">&amp;nbsp;&lt;/div>
&lt;div class="page">&lt;b>Сравнение версий &lt;a name=".informatika.olimpiady.2008.shkol_naja.razbor.f" href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F" class="">/Информатика&amp;nbsp;/&amp;nbsp;Олимпиады&amp;nbsp;/&amp;nbsp;2008&amp;nbsp;/&amp;nbsp;Школьная&amp;nbsp;/&amp;nbsp;Разбор&amp;nbsp;/&amp;nbsp;F&lt;/a> от &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-03-04+18%3A45%3A43">2008-03-04 18:45:43&lt;/a> и &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F">2008-03-04 18:48:20&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">/* Возвращает длину числа &amp;ndash; количество десятичных цифр в&amp;nbsp;нем */&lt;br />
/* Возвращает k-ю цифру числа n&lt;br />
 * k=0..length(n)-1 */&lt;br />
/* Вычисляет 10^n */&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">/* Min&amp;nbsp;&amp;ndash; минимальное число, чей&amp;nbsp;квадрат имеет длину k&amp;nbsp;символов */&lt;br />
/* Для&amp;nbsp;вычисления используется функция ceil, округляющая значение вверх */&lt;br />
/* Max&amp;nbsp;&amp;ndash; максимальное число число, чей&amp;nbsp;квадрат имеет длину k&amp;nbsp;символов */&lt;br />
/* Для&amp;nbsp;вычисления используется функция floor, округляющая значение вниз */&lt;br />
&lt;/div>&lt;/div>&lt;/div>long long n;  /* Для&amp;nbsp;какого числа ищем ответ */&lt;br />
&lt;/div>&lt;ul>&lt;li>-n;           /* Для&amp;nbsp;удобства индексируем с&amp;nbsp;0, поэтому вычтем 1 */
&lt;/li>&lt;/ul>&lt;div class="indent">int len;       /* Текущая длина квадрата */&lt;br />
long long skipped=0; /* Сколько чисел уже&amp;nbsp;пропущено */&lt;br />
for(len=1;;++len)   /* Цикл, сколько чисел нужно пропустить */&lt;br />
&lt;div class="indent">long long currlencount=count(len); /* Столько чисел имеют квадраты длины len&amp;nbsp;*/&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">/* Пропускаем все&amp;nbsp;currlencount чисел, чьи&amp;nbsp;квадраты имеют длину len&amp;nbsp;*/&lt;br />
/* Нельзя пропустить все&amp;nbsp;числа,&lt;br />
 * нужно искать ответ среди чисел,&lt;br />
 * чьи&amp;nbsp;квадраты имеют длину len&amp;nbsp;*/&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>skipped+=n/len; /* Сколько чисел нужно пропустить из&amp;nbsp;тех,&lt;br />
&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li>&lt;ul>&lt;li> чьи&amp;nbsp;квадраты имеют длину len&amp;nbsp;*/
&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>n=n%len;         /* Позиция в&amp;nbsp;числе, которую нужно вернуть */&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">/* Выводим в&amp;nbsp;квадрате числа skipped+1 цифру номер n&amp;nbsp;*/&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">// Возвращает длину числа &amp;ndash; количество десятичных цифр в&amp;nbsp;нем&lt;br />
// Возвращает k-ю цифру числа n&lt;br />
// k=0..length(n)-1&lt;br />
// Вычисляет 10^n&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">// Min&amp;nbsp;&amp;ndash; минимальное число, чей&amp;nbsp;квадрат имеет длину k&amp;nbsp;символов&lt;br />
// Для&amp;nbsp;вычисления используется функция ceil, округляющая значение вверх&lt;br />
// Max&amp;nbsp;&amp;ndash; максимальное число число, чей&amp;nbsp;квадрат имеет длину k&amp;nbsp;символов&lt;br />
// Для&amp;nbsp;вычисления используется функция floor, округляющая значение вниз&lt;br />
&lt;/div>&lt;/div>&lt;/div>long long n;        // Для&amp;nbsp;какого числа ищем ответ&lt;br />
&lt;/div>&lt;ul>&lt;li>-n;           // Для&amp;nbsp;удобства индексируем с&amp;nbsp;0, поэтому вычтем 1
&lt;/li>&lt;/ul>&lt;div class="indent">int len;       // Текущая длина квадрата&lt;br />
long long skipped=0; // Сколько чисел уже&amp;nbsp;пропущено&lt;br />
for(len=1;;++len)   // Цикл, сколько чисел нужно пропустить&lt;br />
&lt;div class="indent">long long currlencount=count(len); // Столько чисел имеют квадраты длины len&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">// Пропускаем все&amp;nbsp;currlencount чисел, чьи&amp;nbsp;квадраты имеют длину len&lt;br />
// Нельзя пропустить все&amp;nbsp;числа,&lt;br />
// нужно искать ответ среди чисел,&lt;br />
// чьи&amp;nbsp;квадраты имеют длину len&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>skipped+=n/len; // Сколько чисел нужно пропустить из&amp;nbsp;тех,&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">// чьи&amp;nbsp;квадраты имеют длину len&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>n=n%len;         // Позиция в&amp;nbsp;числе, которую нужно вернуть&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">// Выводим в&amp;nbsp;квадрате числа skipped+1 цифру номер n&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-04 18:45:10</title>
<link>https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F/show&amp;time=2008-03-04+18%3A45%3A10</link>
<description>&lt;div class="pageBefore">&amp;nbsp;&lt;/div>
&lt;div class="page">&lt;b>Сравнение версий &lt;a  href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F" class="">/Информатика&amp;nbsp;/&amp;nbsp;Олимпиады&amp;nbsp;/&amp;nbsp;2008&amp;nbsp;/&amp;nbsp;Школьная&amp;nbsp;/&amp;nbsp;Разбор&amp;nbsp;/&amp;nbsp;F&lt;/a> от &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-03-04+18%3A45%3A10">2008-03-04 18:45:10&lt;/a> и &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-03-04+18%3A45%3A43">2008-03-04 18:45:43&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">/* Функция count  возвращает количество чисел,&lt;br />
 * чьи&amp;nbsp;квадраты имеют длину k&amp;nbsp;*/&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">// Функция count  возвращает количество чисел,&lt;br />
// чьи&amp;nbsp;квадраты имеют длину k&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-04 18:44:11</title>
<link>https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F/show&amp;time=2008-03-04+18%3A44%3A11</link>
<description>&lt;div class="pageBefore">&amp;nbsp;&lt;/div>
&lt;div class="page">&lt;b>Сравнение версий &lt;a  href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F" class="">/Информатика&amp;nbsp;/&amp;nbsp;Олимпиады&amp;nbsp;/&amp;nbsp;2008&amp;nbsp;/&amp;nbsp;Школьная&amp;nbsp;/&amp;nbsp;Разбор&amp;nbsp;/&amp;nbsp;F&lt;/a> от &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-03-04+18%3A44%3A11">2008-03-04 18:44:11&lt;/a> и &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-03-04+18%3A45%3A10">2008-03-04 18:45:10&lt;/a>&lt;/b>&lt;br />
&lt;br />
Нет различий.&lt;/div>
</description>
</item>
<item>
<title>2008-03-04 18:43:19</title>
<link>https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F/show&amp;time=2008-03-04+18%3A43%3A19</link>
<description>&lt;div class="pageBefore">&amp;nbsp;&lt;/div>
&lt;div class="page">&lt;b>Сравнение версий &lt;a  href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F" class="">/Информатика&amp;nbsp;/&amp;nbsp;Олимпиады&amp;nbsp;/&amp;nbsp;2008&amp;nbsp;/&amp;nbsp;Школьная&amp;nbsp;/&amp;nbsp;Разбор&amp;nbsp;/&amp;nbsp;F&lt;/a> от &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-03-04+18%3A43%3A19">2008-03-04 18:43:19&lt;/a> и &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-03-04+18%3A44%3A11">2008-03-04 18:44:11&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">// Функция count  возвращает количество чисел,&lt;br />
// чьи&amp;nbsp;квадраты имеют длину k&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">// Функция count  возвращает количество чисел, чьи&amp;nbsp;квадраты имеют длину k&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-28 12:59:58</title>
<link>https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F/show&amp;time=2008-02-28+12%3A59%3A58</link>
<description>&lt;div class="pageBefore">&amp;nbsp;&lt;/div>
&lt;div class="page">&lt;b>Сравнение версий &lt;a  href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F" class="">/Информатика&amp;nbsp;/&amp;nbsp;Олимпиады&amp;nbsp;/&amp;nbsp;2008&amp;nbsp;/&amp;nbsp;Школьная&amp;nbsp;/&amp;nbsp;Разбор&amp;nbsp;/&amp;nbsp;F&lt;/a> от &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-02-28+12%3A59%3A58">2008-02-28 12:59:58&lt;/a> и &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-03-04+18%3A43%3A19">2008-03-04 18:43:19&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">// Нельзя пропустить все&amp;nbsp;числа,&lt;br />
// нужно искать ответ среди чисел,&lt;br />
// чьи&amp;nbsp;квадраты имеют длину len&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>skipped+=n/len; // Сколько чисел нужно пропустить из&amp;nbsp;тех,&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">// чьи&amp;nbsp;квадраты имеют длину len&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>// Выводим в&amp;nbsp;квадрате числа skipped+1 цифру номер n&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>cout&amp;lt;&amp;lt;kthdigit((skipped+1)*(skipped+1),n)&amp;lt;&amp;lt;endl; &lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">// Нельзя пропустить все&amp;nbsp;числа, нужно искать ответ среди чисел, чьи&amp;nbsp;квадраты имеют длину len&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>skipped+=n/len; // Сколько чисел нужно пропустить из&amp;nbsp;тех, чьи&amp;nbsp;квадраты имеют длину len&lt;br />
cout&amp;lt;&amp;lt;kthdigit((skipped+1)*(skipped+1),n)&amp;lt;&amp;lt;endl; // Выводим в&amp;nbsp;квадрате числа skipped+1 цифру номер n&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-27 00:56:15</title>
<link>https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F/show&amp;time=2008-02-27+00%3A56%3A15</link>
<description>&lt;div class="pageBefore">&amp;nbsp;&lt;/div>
&lt;div class="page">&lt;b>Сравнение версий &lt;a  href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F" class="">/Информатика&amp;nbsp;/&amp;nbsp;Олимпиады&amp;nbsp;/&amp;nbsp;2008&amp;nbsp;/&amp;nbsp;Школьная&amp;nbsp;/&amp;nbsp;Разбор&amp;nbsp;/&amp;nbsp;F&lt;/a> от &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-02-27+00%3A56%3A15">2008-02-27 00:56:15&lt;/a> и &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-02-28+12%3A59%3A58">2008-02-28 12:59:58&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">У&amp;nbsp;данной задачи возможно несколько решений.&lt;br />
Первое решение: непосредственно создаем текстовую строку, последовательно записывая в&amp;nbsp;нее значения точных квадратов, пока не&amp;nbsp;получится строка необходимой длины. Далее выводим соответствующий символ в&amp;nbsp;этой строке. Такое решение должно набирать 20 баллов. Оно&amp;nbsp;крайне неэффективно, так&amp;nbsp;как требует большого числа операций с&amp;nbsp;памятью.&lt;br />
Второе решение: строку не&amp;nbsp;конструируем, а&amp;nbsp;просто подсчитываем ее&amp;nbsp;длину, суммируя длины десятичных записей всех точных квадратов. В&amp;nbsp;результате мы&amp;nbsp;узнаем, какую цифру в&amp;nbsp;каком числе нам&amp;nbsp;необходимо определить. Такое решение имеет сложность O(N), но&amp;nbsp;работает быстрее, так&amp;nbsp;как не&amp;nbsp;производятся сложные операции над&amp;nbsp;строками. Такое решение должно набирать 60 баллов.&lt;br />
Третье, наиболее эффективное решение. Вместо перебора всех чисел подряд определяем, сколько существует чисел, чьи&amp;nbsp;квадраты имеют длину 1, затем &amp;ndash; сколько чисел, чьи&amp;nbsp;квадраты имеют длину два&amp;nbsp;и&amp;nbsp;т.д. В&amp;nbsp;результате получится алгоритм сложности O(log n). Он&amp;nbsp;будет набирать 100 баллов.&lt;br />
Хотя входные данные и&amp;nbsp;ограничены значением 10&lt;sup>9&lt;/sup>, при&amp;nbsp;вычислении значения &amp;laquo;длина точного квадрата&amp;raquo; * &amp;laquo;количество чисел такой длины&amp;raquo; может произойти переполнение типа int, поэтому будем использовать тип&amp;nbsp;long long.&lt;br />
Для&amp;nbsp;удобства будем индексировать позицию не&amp;nbsp;с 1, а&amp;nbsp;с 0.&lt;br />
// Возвращает длину числа &amp;ndash; количество десятичных цифр в&amp;nbsp;нем&lt;br />
// Вычисляет 10^n&lt;br />
// Функция count  возвращает количество чисел, чьи&amp;nbsp;квадраты имеют длину k&lt;br />
long long count(int k)&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">// Min&amp;nbsp;&amp;ndash; минимальное число, чей&amp;nbsp;квадрат имеет длину k&amp;nbsp;символов&lt;br />
// Для&amp;nbsp;вычисления используется функция ceil, округляющая значение вверх&lt;br />
// Max&amp;nbsp;&amp;ndash; максимальное число число, чей&amp;nbsp;квадрат имеет длину k&amp;nbsp;символов&lt;br />
// Для&amp;nbsp;вычисления используется функция floor, округляющая значение вниз&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/li>&lt;li>-n;           // Для&amp;nbsp;удобства индексируем с&amp;nbsp;0, поэтому вычтем 1
&lt;/div>&lt;div class="indent">for(len=1;;++len)   // Цикл, сколько чисел нужно пропустить&lt;br />
&lt;div class="indent">long long currlencount=count(len); // Столько чисел имеют квадраты длины len&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">// Пропускаем все&amp;nbsp;currlencount чисел, чьи&amp;nbsp;квадраты имеют длину len&lt;br />
// Нельзя пропустить все&amp;nbsp;числа, нужно искать ответ среди чисел, чьи&amp;nbsp;квадраты имеют длину len&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>skipped+=n/len; // Сколько чисел нужно пропустить из&amp;nbsp;тех, чьи&amp;nbsp;квадраты имеют длину len&lt;br />
n=n%len;         // Позиция в&amp;nbsp;числе, которую нужно вернуть&lt;br />
cout&amp;lt;&amp;lt;kthdigit((skipped+1)*(skipped+1),n)&amp;lt;&amp;lt;endl; // Выводим в&amp;nbsp;квадрате числа skipped+1 цифру номер n&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">const double rootof10=sqrt(10);&lt;br />
// Возвращает длину числа &amp;ndash; количество десятичных цифр&lt;br />
// Возвращает количество чисел, имеющих в&amp;nbsp;точности данную длину k&lt;br />
long long count(long long k)&lt;br />
&lt;ul>&lt;li>-n;
&lt;/li>&lt;/ul>&lt;div class="indent">for(len=1;;++len)&lt;br />
&lt;div class="indent">long long currlencount=count(len);&lt;br />
&lt;div class="indent">skipped+=n/len;&lt;br />
n=n%len;&lt;br />
cout&amp;lt;&amp;lt;kthdigit((skipped+1)*(skipped+1),n)&amp;lt;&amp;lt;endl;&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-27 00:55:59</title>
<link>https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F/show&amp;time=2008-02-27+00%3A55%3A59</link>
<description>&lt;div class="pageBefore">&amp;nbsp;&lt;/div>
&lt;div class="page">&lt;b>Сравнение версий &lt;a  href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F" class="">/Информатика&amp;nbsp;/&amp;nbsp;Олимпиады&amp;nbsp;/&amp;nbsp;2008&amp;nbsp;/&amp;nbsp;Школьная&amp;nbsp;/&amp;nbsp;Разбор&amp;nbsp;/&amp;nbsp;F&lt;/a> от &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-02-27+00%3A55%3A59">2008-02-27 00:55:59&lt;/a> и &lt;a href="https://server.179.ru/wacko43/?page=Informatika/Olimpiady/2008/Shkol'naja/Razbor/F&amp;amp;time=2008-02-27+00%3A56%3A15">2008-02-27 00:56:15&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h1476-1">&lt;/a>&lt;h1>Разбор задачи F&lt;/h1>
&lt;a href="http://server.179.ru/olymp/2008/statements/f.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="https://server.179.ru/wacko43/themes/wakka/icons/web.gif" alt="" />Условия задачи шестого тура&lt;/a>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h1476-1">&lt;/a>&lt;h1>Разбор задачи E&lt;/h1>
&lt;a href="http://server.179.ru/olymp/2008/statements/e.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="https://server.179.ru/wacko43/themes/wakka/icons/web.gif" alt="" />Условия задачи пятого тура&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
