Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

инфо-2

.pdf
Скачиваний:
5
Добавлен:
16.04.2015
Размер:
158.38 Кб
Скачать

30. 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