
инфо-2
.pdf30. C 2 № 5321. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Элемент массива называется хорошим, если это двузначное число, причём цифра в разряде десятков больше, чем цифра в разряде единиц. Опишите на одном из языков программирования алгоритм, позволяющий найти и выве сти сумму всех хоро ших элемен тов масси ва .
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разре ша ет ся не исполь зо вать часть из них.
|
const |
|
|
N=30; |
|
|
var |
|
Паскаль |
a: array [1..N] of integer; |
|
i, j, s: integer; |
||
|
begin |
|
|
for i:=l to N do |
|
|
readln(a[i]) ; |
|
|
end. |
|
|
|
|
|
N=30 |
|
|
DIM A(N) AS INTEGER |
|
|
DIM I, J, S AS INTEGER |
|
Бейсик |
FOR I = 1 TO N |
|
INPUT A(I) |
||
|
||
|
NEXT I |
|
|
... |
|
|
END |
|
|
|
|
|
#include |
|
|
#define N 30 |
|
|
void main(){ |
|
Си |
int a[N]; |
|
|
int i, j, s; |
|
|
for (i=0; iscanf("%d", &a[i]); |
|
|
... |
|
|
|
|
|
алг |
|
|
нач |
|
|
цел N=30 |
|
Алго ритмический |
целтаб а[1:N] |
|
цел i, j, s |
||
язык |
||
нц для i от 1 до N |
||
|
||
|
ввод а[i] |
|
|
кц |
|
|
кон |
|
|
|
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае вы должны исполь зо вать те же самые исход ные данные и пере мен ные , какие были предло же ны в условии .
31. C 3 № 6905. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или два камня или увеличить коли че ство камней в куче в два раза. Напри мер , имея кучу из 15 камней , за один ход можно полу чить кучу из 16, 17 или 30 камней . У каждо го игро ка , чтобы делать ходы, есть неогра ни чен ное коли че ство камней .
Игра завершается в тот момент, когда количество камней в куче становится не менее 43. Победителем считается игрок, сделав ший послед ний ход, то есть первым полу чив ший кучу, в кото рой будет 43 или больше камней .
В началь ный момент в куче было S камней , 1 ≤ S ≤ 42.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретить ся при различ ной игре против ни ка .
Выпол ни те следу ющие зада ния . Во всех случа ях обосно вы вай те свой ответ.
1. а) При каких значе ни ях числа S Петя может выиг рать в один ход? Укажи те все такие значе ния .
б) Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиг рать своим первым ходом. Опиши те выиг рыш ную страте гию Вани.
2.Укажите два таких значения S , при которых у Пети есть выигрышная стратегия, причём (а) Петя не может выиг рать за один ход и (б) Петя может выиг рать своим вторым ходом неза ви си мо от того, как будет ходить Ваня.
Для каждо го указан но го значе ния S опиши те выиг рыш ную страте гию Пети.
3.Укажите значение S, при котором у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, однако у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Для указан но го значе ния S опиши те выиг рыш ную страте гию Вани. Построй те дере во всех партий , возмож ных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход, в узлах
—коли че ство камней в пози ции .
32. C 4 № 6514. В командных олимпиадах по программированию для решения предлагается не больше 12 задач. Команда может решать предложенные задачи в любом порядке. Подготовленные решения команда посылает в единую проверяющую систему соревнований. Вам предлагается написать эффективную, в том числе по используемой памяти, программу, которая будет статистически обрабатывать пришедшие запросы, чтобы определить наименее популярные задачи. Следует учитывать, что количество запросов в списке может быть очень велико, так как многие соревнования проходят с использованием сети Интернет. Перед текстом программы кратко опишите используемый Вами алгоритм решения задачи. На вход программе в первой строке подаётся количество пришедших запросов N. В каждой из последующих N строк записано название задачи в виде текстовой строки. Длина строки не превосходит 100 символов, название может содержать буквы, цифры, пробелы и знаки препинания.
Пример входных данных :
6 А+B
Крести ки -Ноли ки А+В Простой дели тель А+В
Простой дели тель
Программа должна вывести список из трёх задач, встречающихся в запросах наименьшее число раз, с указанием количества запросов по ним. Если в запросах упоминается менее трёх задач, то выведите информацию об имеющихся задачах. Если несколько задач имеют ту же частоту встречаемости, что и третья по частоте встречаемости задача, то выведите только одну из них. Пример выходных данных для приведённого выше примера входных данных :
Крести ки -Ноли ки 1 Простой дели тель 2 А+В 3