<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419243&amp;view=findpost&amp;p=3835312</guid>
        <pubDate>Mon, 27 Jul 2020 09:21:31 +0000</pubDate>
        <title>ЕГЭ по информатике 2020, часть 2, № 27</title>
        <link>https://forum.sources.ru/index.php?showtopic=419243&amp;view=findpost&amp;p=3835312</link>
        <description><![CDATA[swf: ЕГЭ по информатике 2020, вариант Москва<br>
Часть 2, № 27<br>
Программирование<br>
Задание взято с сайта<br>
<a class='tag-url' href='http://kotolis.ru/realegeinf_2020' target='_blank'>http://kotolis.ru/realegeinf_2020</a><br>
(программу, приведённую на сайте, не проверяла)<br>
<br>
<img class='tag-img' src='https://i.ibb.co/bFBHv16/27.jpg' alt='user posted image'><br>
<br>
<strong class='tag-b'>Условие.</strong><br>
На вход программы поступает последовательность из N натуральных чисел. Рассматриваются все пары различных элементов последовательности, у которых различные остатки от деления на d=160 и хотя бы одно из чисел делится на р=7. Среди таких пар, необходимо найти и вывести пару с максимальной суммой элементов.<br>
Описание входных и выходных данных.<br>
В первой строке входных данных задаётся количество чисел N<br>
(1&lt;= N &lt;= 1000). В каждой из последующих N строк записано одно натуральное число, не превышающее 10000. В качестве результата программа должна напечатать элементы искомой пары. Если среди найденных пар максимальную сумму имеют несколько, то можно напечатать любую из них. Если таких пар нет, то вывести два нуля.<br>
Пример входных данных:<br>
4<br>
168<br>
7<br>
320<br>
328<br>
Пример выходных данных для приведённого выше примера входных данных:<br>
168 320<br>
Пояснение: Из 4 чисел можно составить 6 пар. В данном случае условиям удовлетворяют пары: 168 и 320, 168 и 7, 320 и 7, 328 и 7. Максимальную сумму дает пара 168 и 320.<br>
Программа считается эффективной по времени, если при увеличении количества исходных чисел N в к раз время работы программы увеличивается не более чем в к раз. При увеличении d в к раз время работы программы должно не увеличиваться.<br>
Программа считается эффективной по памяти, если память, необходимая для хранения всех переменных программы, не превышает 1 килобайта и не увеличивается с ростом N.<br>
Максимальная оценка за правильную (не содержащую синтаксических ошибок и дающую правильный ответ при любых допустимых входных данных) программу, эффективную по времени и по памяти, – 4 балла.<br>
Максимальная оценка за правильную программу, эффективную только по времени или только по памяти, – 3 балла.<br>
Максимальная оценка за правильную программу, не удовлетворяющую требованиям эффективности. — 2 балла.<br>
Вы можете сдать одну или две программы решения задачи. Если Вы сдадите две программы, каждая из них будет оцениваться независимо от другой, итоговой станет большая из двух оценок. <br>
<br>
<strong class='tag-b'>Решение.</strong><br>
Нужно найти пару (a, b) с максимальной суммой.<br>
Числа a и b должны удовлетворять следующим условиям:<br>
1)  быть разные: a &lt;&gt; b;<br>
2) остатки от деления на 160 у этих чисел тоже должны быть разные: <br>
a mod 160 &lt;&gt; b mod 160;<br>
3) хотя бы одно из чисел должно быть кратно 7: <br>
(a mod 7 = 0) or (b mod 7 = 0).<br>
<br>
Во время чтения элементов последовательности находим значение четырёх переменных: max1, max2, k1, k2. <br>
Инициализация: max1:= 0; max2:=  0; k1:= 0; k2:= 0.<br>
max1 – самое большое число в последовательности, <br>
max2 – второе по величине при условии, что  остатки от деления на 160 у них разные: max1 mod 160 &lt;&gt; max2 mod 160.<br>
κ1 – самое большое число в последовательности, кратное 7, <br>
k2 – второе по величине кратное 7 при условии, что остатки от деления на 160 у них разные: k1 mod 160 &lt;&gt; k2 mod 160.<br>
<br>
После того, как чтение элементов закончиться, делаем следующие проверки.<br>
Если  max2=0 (у всех элементов остатки деления на 160 одинаковы ), то печать 0 0<br>
Иначе если max1 или max2 кратно 7, то печать max1 max2<br>
Иначе если k1 = 0 (нет элементов, кратных 7), то печать 0 0<br>
Иначе если k2 =0 (у всех элементов, кратных 7, остатки от деления на 160 одинаковы), то<br>
     begin<br>
       если у max1 и k1 остатки от деления на 160 разные, то печать max1 k1<br>
       иначе печать max2 k1<br>
     end<br>
Иначе если у  max1 и k1 остатки от деления на 160 разные, то печать max1 k1<br>
Иначе если max1+k2  &gt;  max2+k1, то печать max1 k2<br>
Иначе печать max2 k1. <br>
<br>
<strong class='tag-b'>Программа на Паскале</strong><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">const N= 4;</div><div class="code_line">var a,i,max1,max2,k1,k2,ost160: integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;max1:= 0; max2:= 0; k1:= 0; k2:= 0;</div><div class="code_line">&nbsp;&nbsp;for i:= 1 to N do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; readln(a); &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; ost160:= a mod 160;</div><div class="code_line">&nbsp;&nbsp; &nbsp; if max1 = 0 then max1:= a &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; else if a &#62; max1 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ost160 &#60;&#62; (max1 mod 160) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; max2:= max1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; max1:= a</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;else max1:= a</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end //a &#62; max1</div><div class="code_line">&nbsp;&nbsp; &nbsp; else if a &#62; max2 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; begin if ost160 &#60;&#62; (max1 mod 160) then max2:= a end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; if a mod 7 = 0 then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if k1 = 0 then k1:= a</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;else if a &#62; k1 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ost160 &#60;&#62;(k1 mod 160) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin k2:= k1; k1:= a end</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else k1:= a</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end // a &#62; k1</div><div class="code_line">&nbsp;&nbsp; &nbsp; else if a &#62; k2 then &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; begin if ost160 &#60;&#62; (k1 mod 160) then k2:= a end</div><div class="code_line">&nbsp;&nbsp; &nbsp; end; //a mod 7 = 0</div><div class="code_line">&nbsp;&nbsp;end;//for</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;if max2=0 then writeln(&#39;0 0&#39;)</div><div class="code_line">&nbsp;&nbsp;else if (max1 mod 7 = 0)or(max2 mod 7 = 0) then writeln(max1, &#39; &#39;, max2)</div><div class="code_line">&nbsp;&nbsp;else if k1=0 then writeln(&#39;0 0&#39;)</div><div class="code_line">&nbsp;&nbsp;else if k2=0 then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if (max1 mod 160)&#60;&#62;(k1 mod 160) then writeln(max1, &#39; &#39;, k1)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;else writeln(max2, &#39; &#39;, k1)</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp;else if (max1 mod 160)&#60;&#62;(k1 mod 160) then writeln(max1, &#39; &#39;, k1)</div><div class="code_line">&nbsp;&nbsp;else if max1+k2 &#62; max2+k1 then writeln(max1, &#39; &#39;, k2)</div><div class="code_line">&nbsp;&nbsp;else writeln(max2, &#39; &#39;, k1);</div><div class="code_line">&nbsp;&nbsp;readln;</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>swf</author>
        <category>ПОМОЩЬ ШКОЛЬНИКАМ</category>
      </item>
	
      </channel>
      </rss>
	