Sunteți pe pagina 1din 4

Olimpiada de sector la INFORMATICA, programare 2015

Clasele 10-12

Problema 1. Șirul comprimat.


Este dat un șir format doar din litere mari ale alfabetului latin. Șirul dat a fost comprimat după
următoarea metodă: secvențele de caractere formate dintr-un caracter ce se repetă (lungimea >1) au fost
excluse și înlocuite cu numărul lor, urmat de caracterul dat. Scrieți un program care, avînd șirul comprimat,
determină șirul inițial.
Input: Fișierul sir.in conține șirul comprimat.
Output: Fișierul sir.out va conține șirul inițial.
Restricții : Lungimea șirului comprimat nu întrece valoarea 80.
Exemplu :
Nr SIR.IN SIR.OUT
1 3A4B7D AAABBBBDDDDDDD
2 12C5FE4S CCCCCCCCCCCCFFFFFESSSS
3 22AB AAAAAAAAAAAAAAAAAAAAAAB

Problema 2. Numere „magice”.


Într-o zi frumoasă de vară, Alice îl văzu pe Iepurele Alb, sărind grăbit în scorbura unui copac. Curioasă, Alice îl
urmări şi sări şi ea în scorbură. Spre mirarea ei, ajunse într-o sală mare cu N uşi încuiate. Pe fiecare uşă era scris câte
un număr natural. Într-o clipă, lângă ea apăru Iepurele Alb şi-i spuse că doar uşile cu numere magice pot fi deschise,
dacă are cheile potrivite. Pentru a o ajuta, Iepurele Alb i-a explicat că un număr magic este un număr natural care
poate fi redus la o cifră prin complementarea cifrelor acestuia faţă de cifra sa maximă din scrierea zecimală, apoi prin
complementarea cifrelor numărului obţinut faţă de cifra sa maximă şi aşa mai departe până când se obţine o singur ă
cifră. Evident, nu toate numerele naturale sunt numere magice. De exemplu, uşa cu numărul 1234 poate fi deschisă cu
cheia inscripţionată cu cifra 1 deoarece 1234 este un număr magic ce poate fi redus la cifra 1 prin complementări
repetate (1234321012321012101), iar uşa cu numărul 1204 nu poate fi deschisă deoarece 1204
nu este un număr magic (indiferent de câte ori s-ar repeta complementarea nu poate fi redus la o cifră:
12043240120432401204 ….). Înainte să dispară, Iepurele Alb îi dădu o cheie aurie inscripţionată cu
cifra K şi o avertiză că poate deschide cu această cheie doar uşile cu numere magice ce pot fi reduse la cifra K. Scrieţi
un program care să citească numerele naturale N, K şi cele N numere naturale scrise pe cele N uşi, şi să determine
numărul uşilor care pot fi deschise cu cheia aurie inscripţionată cu cifra K.
Input: Fişierul alice.in conţine pe prima linie cele două numere naturale N şi K, separate printr-un spaţiu, iar pe a doua linie N
numere naturale, separate prin câte un spaţiu, reprezentând numerele scrise pe cele N uşi.
Output: La ecran se va afișa un număr ce reprezintă numărul uşilor care pot fi deschise cu cheia inscripţionată cu cifra K.
Restricţii şi precizări: complementarea cifrelor unui număr natural faţă de cifra sa maximă din scrierea zecimală constă în
înlocuirea fiecărei cifre c din număr cu diferenţa dintre cifra maximă şi cifra c; de exemplu, cifra maximă a numărului 1234 este
4, iar prin complementare se înlocuieşte cifra 1 cu 3(=4-1), cifra 2 cu 2(=4-2), cifra 3 cu 1 (=4-3) şi cifra 4 cu 0(=4-
4) rezultând numărul 3210; 1  N  10000; 0  K  9;pe fiecare uşă este scris un singur număr natural;
numărul scris pe oricare uşă (din cele N) este mai mare sau egal ca 10 şi mai mic sau egal ca 32767;
Exemplu:
alice.in OUTPUT Explicaţii
7 1 3 Sunt N=7 uşi pe care sunt scrise numerele 1204, 1234, 13, 195, 23, 10,
1204 1234 13 195 23 10 888 888. Cheia primită este inscripţionată cu cifra K=1 şi deschide 3 uşi cu
numerele 1234, 23 şi 10 deoarece numerele magice dintre cele scrise
pe uşi sunt: 1234 (1234321012321012101),
13(13202), 195(195804844), 23(23101), 10(101),
888 (8880). Numărul 1204 nu este un număr magic. Astfel la ecran
se va afișa numărul 3.

Problema 3. Puterea.
Pentru a verifica cît de bine elevii se descurcă cu calculele, profesoara de matematică în fiecare an le propune
următoarea problemă: pentru un număr natural dat A să determine cel mai mic număr natural N care ridicat la puterea
N este divizibil cu A. Din an în an și de la elev la elev se modifică doar numărul A. Scrieți un program, care va ajuta
generațiile următoare să rezolve problema dată.
Input: Fişierul de intrare date.in conține un singur număr natural A (1≤A≤109).
Output: Fişierul de ieşire date.out va conţine numărul natural N.
Exemplu:
Input Output
8 4
13 13
Olimpiada de sector la INFORMATICA, programare 2015

Clasele 5-9

Problema 1. Criza financiară mondială.


După începerea crizei financiare mondiale, şoricelul de calculator a hotărît să ia de la depozit un covoraş
de rezervă. Ca să nu observe nimeni covoraşul de rezervă, şoricelul a hotărît să-l ascundă sub covoraşul său
de formă dreptunghiulară cu dimensiunile w pe h. Ajungînd noaptea la depozit, şoricelul a depistat, că sunt
doar covoraşe rotunde cu diametrul d. Deoarece şoricelul nu e prea puternic la matematică, ajutaţi-l să
determine, dacă va putea ascunde covoraşul rotund sub cel de formă dreptunghiulară.
Input: De la tastatură se citesc 3 numere — w, h (dimensiunile covoraşului), și d (diametrul covoraşului de rezervă). Toate
sunt numere naturale nu mai mari de 100.
Output: La ecran se va afișa ‘YES', dacă covoraşul nou poate fi ascuns sub cel vechi şi  ‘NO’, în caz contrar.
Exemplu
Nr INPUT OUTPUT
1 474 YES
2 475 NO

Problema 2. Zerouri la sfîrșit.


Scrieți un program care citește N numere naturale și determină numărul de zerouri ce pot apărea la
sfîrșitul produsului acestor numere.
Input: Fișierul de intrare zero.in conține pe prima linie numărul N, iar pe următoarea- N numere naturale x1, x2, …, xn, despărțite
prin spațiu.
Output: Numărul de zerouri de la sfîrșitul produsului acestor numere se va afișa la ecran.
Restricțiii: 0 ≤N≤32767;
Exemplu:
zero.in OUTPUT Explicație
5 2 4*2*5*10=400
4 2 5 10
6 1 10*100*2*5*0*4=0
10 100 2 5 0 4

Problema 3. Cartea.
Dumitraș a primit în dar o carte în care paginile sunt amestecate. Se hotărî totuși să o citească, răsfoind
cartea într-un singur sens, de la prima pagină către ultima, în ordinea așezării lor în carte, respectînd
următorul algoritm:"Caută la început pagina numerotată cu x=1. După ce a citit o pagină cu numărul x caută
printre paginile următoare acestei pagini, răsfoind cartea, pagina cu numărul x+1, fără a căuta printre
paginile așezate înaintea paginii cu numărul x. Dacă o găsește atunci va continua lectura în același mod, iar
dacă nu o găsește atunci va închide cartea și, în ziua următoare, va relua lectura de la pagina cu numărul
x+1, pe care mai întîi o va cauta răsfoind cartea de la început. Dumitraș va proceda la fel și în zilele
următoare pînă cînd va citi întreaga carte". Scrieți un program care citește un număr natural N, reprezentînd
numărul paginilor din carte și N numere naturale distincte x1, x2,…, xn, reprezentînd ordinea în care sunt
așezate cele N pagini în carte, și care determină numărul de zile în care Dumitraș citește cartea.
Input: Fișierul de intrare carte.in conține pe prima linie numărul N al paginilor din carte, iar pe linia următoare N numere întregi
distincte x1, x2, …, xn, separate prin cîte un spațiu, reprezentînd ordinea în care sunt așezate paginile în carte.
Output: Numărul de zile în care Dumitraș va citi cartea se va afișa la ecran.
Restricții și precizări: 0 < N< 1000; paginile cărții sunt numerotate cu numere naturale distincte de la 1 la N; citirea cărții
presupune citirea fiecărei pagini din carte, o singură dată; zilele în care Dumitraș citește cartea sunt numerotate consecutiv,
începînd cu numărul 1;
Exemplu:
carte.in OUTPUT Explicație
9 4 în prima zi a citit paginile: 1,2; a doua zi: 3,4,5; a treia zi : 6; a patra zi : 7,8,9
713682495
Olimpiada de sector la INFORMATICA, programare 2015

Классы 10-12

Задача 1. Распаковка строки.


Дана строка, содержащая только большие латинские буквы. Строка была упакованна следующим
методом: повторяющиеся подряд символы удаляются и заменяются числом повторений, за которым
следует этот символ. Напишите программу которая берет упакованную строку и восcтанавливает по
ней исходную.
Input: Файл sir.in содержит упакованную строку.
Output: Файл sir.out будет содержать исходную строку.
Ограничения: Максимальная длина строки не превышает 80 символов.
Пример :
Nr SIR.IN SIR.OUT
1 3A4B7D AAABBBBDDDDDDD
2 12C5FE4S CCCCCCCCCCCCFFFFFESSSS
3 22AB AAAAAAAAAAAAAAAAAAAAAAB

Задача 2. „Магические” номера.


В один прекрасный летний день, Алиса увидела Белого Кролика, прыгающего в
дупло дерева. Из любопытства, Алиса спустилась за ним. К своему удивлению, она попала в большую
комнату с N закрытыми дверями. На каждой двери было написано натуральное число. Тут же, Белый Кролик
подошел к ней и сказал, что могут быть открыты только двери с магическими числа, если есть ключ с
соответствующей цифрой. Белый Кролик объяснил, что магическое число – это натуральное число, которое
может быть сведено к одной цифре, методом дополнения цифр от максимальной цифры после конечного
числа повторений. Не все числа магические. К примеру, дверь с номером 1234 можно открыть ключом с
номером 1 потому что число 1234 магическое и после конечного числа повторений получаем 1:
(1234321012321012101), а дверь с номером 1204 нельзя открыть потому что 1204 не является
магическим числом (независимо от того, сколько раз повторять дополнение, число не может быть сведено к
одной цифре 12043240120432401204 ….). Прежде чем исчезнуть, Белый Кролик дал Алисе золотой
ключ с номером K и предупредил, что этот ключ может открывать только двери с магическими числами,
которые могут быть сведены к цифре К. Написать программу которая читает целые числа N, K и N
натуральных чисел написанных на дверях, и определяет количество дверей, которые можно открыть с
помощью золотого ключа, помеченного номером К.
Input: Входной файл alice.in содержит в первой строке 2 натуральных чисел N и K, разделенные пробелом, а в
следующей строке - N натуральных чисел, разделенные пробелом, что соответствуют числам записанных на дверях.
Output: На экран выводится число дверей которые можно открыть ключом с номером K.
Ограничения: дополнение цифр натурального числа до максимальной цифры состоит в замене каждой цифры разницей
между максимальной цифры и данной цифры; к примеру, максимальная цифра числа 1234 это 4 а при дополнении
цифра 1 заменяется на 3(=4-1), цифра 2 на 2(=4-2), цифра 3 на 1 (=4-3) и цифра 4 на 0(=4-4) и получаем
число 3210; 1  N  10000; 0  K  9; на каждой двери написано одно натуральное число;
Числа записанные на дверях ≥ 10 и ≤ 32767;
Пример:
alice.in OUTPUT Объяснение
7 1 3 Даны N=7 дверей, на которых записаны числа 1204, 1234, 13, 195,
1204 1234 13 195 23 10 888 23, 10, 888. Ключ с номером K=1 открывает 3 двери с номерами
1234, 23 и 10. Магические номера на дверях: 1234
(1234321012321012101), 13(13202),
195(195804844), 23(23101), 10(101), 888 (8880).
Число 1204 не магическое. Иэ магических только 3 числа
сводятся к цифре 1.

Задача 3. Степень.
Чтобы проверить, насколько хорошо студенты умеют считать, преподаватель математики каждый год предлагает
следующую задачу: для заданного натурального числа, определить наименьшее целое число N, которое возведенное в
степень N делится на А. Из года в год, и от студента к студенту меняется только число A. Напишите программу, которая
поможет будущим поколениям решить задачу.
Input: Входной файл date.in содержит натуральное число A (1≤A≤109).
Output: Выходной файл date.out будет содержать натуральное число N.
Exemplu:
Input Output
8 4
13 13
Olimpiada de sector la INFORMATICA, programare 2015

Классы 5-9

Задача 1. Мировой финарнсовый кризис.


После того, как разразился мировой финансовый кризис, компьютерная мышка подумала, что
стоит пробраться  на склад и взять про запас для себя еще один  коврик. Чтобы никто не заметил
запасного коврика, мышка решила его спрятать под свой, прямоугольный коврик размером w на h.
Пробравшись ночью на склад, мышка обнаружила, что в наличии только круглые коврики
диаметром d. Так как мышка не сильна в математике, помогите ей определить, удастся ли спрятать
круглый коврик под прямоугольный или нет.
Input: С клавиатуры вводятся 3 числа — w, h (ширина и высота коврика), и   d (диаметр запасного коврика). Все 3
числа натуральные ≤100.
Output: На экране выведите ‘YES', если новый коврик можно спрятать под старым, и  ‘NO’, если этого сделать нельзя.
Пример:
Nr INPUT OUTPUT
1 474 YES
2 475 NO

Задача 2. Нули в конце.


Напишите программу которая определяет количество нулей, которые могут появиться в конце
произведения N натуральных чисел.
Input: Входной файл zero.in содержит в первой строке число N а в следующей строке - N целых чисел x1, x2, ... , хn,
разделенные через пробел.
Output: Число нулей в конце произведения этих чисел выводится на экране.
Ограничения: 0 ≤N≤32767;
Пример:
zero.in OUTPUT Объяснение
5 2 4*2*5*10=400
4 2 5 10
6 1 10*100*2*5*0*4=0
10 100 2 5 0 4

Задача 3. Книга.
Дима получил в подарок книгу, в которой страницы смешаны. Он решился ее все таки прочитать,
листая с начала до конца, по следующему алгоритму:"Ищет в начале страницу с номером x=1. После
того как прочитал страницу с номером x ищет страницу с номером x+1 среди следующих, не
возвращаясь к страницам что стоят перед страницой с номером x. Если находит такую страницу
продолжает читать по этому алгоритму, если нет – он продолжает чтение только на следующий день,
начиная со страницей с номером x+1, которую находит, листая книгу с начала. Дима будет
продолжать читать книгу по этому алгоритму, пока не прочтет ее до конца. Напишите програму
которая определит число дней, за которых Дима прочтет книгу по изложенному алгоритму.
Input: Входной файл carte.in содержит в первой строке число N - количество страниц книги, а в следующей строке N
целых различных числа x1, x2, …, xn, разделеные пробелом, представляющие порядок, в котором страницы помещаются
в книге.
Output: На экране выводится число дней за которых Дима прочтет эту книгу.
Ограничения: 0 < N< 1000; номера страниц книги являются различные целые числа от 1 до N; чтение книг означает
читать каждую страницу книги один раз, дни, когда Дима читает книгу последовательно нумеруются, начиная с номера 1
;
Пример:
carte.in OUTPUT Объяснение
9 4 I-й день он прочитал страницы: 1,2; II-й день: 3,4,5;
713682495 III-й день : 6; IV-й день : 7,8,9

S-ar putea să vă placă și