Documente Academic
Documente Profesional
Documente Cultură
Ol - Sector2018 - Subiecte
Ol - Sector2018 - Subiecte
Problema 1. Ulcior.
La sărbătoarea lui Neptun – zeul apelor, a fost lansat un concurs care estimează modalități optime de a
transporta apa dintr-un bazin de apă cu capacitatea C litri în alt bazin de aceiași capacitate, inițial fiind gol.
Participanților li se pun la dispoziție a cîte 2 ulcioare: primul cu capacitatea de 3 litri, iar al doilea cu
capacitatea de 5 litri.
Cerință: Scrieți un program care va determina de cîte ori a fost utilizat ulciorul de 3 litri și ulciorul de 5 litri
pentru a transporta toată apa din primul bazin în al doilea bazin într-un timp minim. De fiecare dată ulciorul
cu care se va transporta apa va fi plin cu apă.
Date de intrare: Fișierul de intrare ulcior.in conține pe prima linie numărul natural C.
Date de ieșire: Fișierul de ieșire ulcior.out conține pe prima linie două numere naturale separate prin spațiu,
care reprezintă respectiv de cîte ori a fost utilizat ulciorul cu capacitatea de 3 litri și de cîte ori a fost utilizat
ulciorul cu capacitatea de 5 litri pentru a transporta repede toată apa din primul bazin în al doilea bazin.
Restricții și precizări:
8≤C≤30000;
Exemplu:
ulcior.in ulcior.out Explicație
13 12 Ulciorul de 3litri a fost utilizat o dată:13=3 litri
Ulciorul de 5 litri a fost utilizat de 2 ori:25=10 litri
Total:10+3=13 litri
Problema 2. Ecuații.
Să considerăm ecuaţii de gradul I, de forma: expresie_1=expresie_2. Expresiile specificate sunt
constituite dintr-o succesiune de operanzi, între care există semnul + sau semnul – (cu semnificaţia de
adunare, respectiv scădere). Fiecare operand este fie un număr natural, fie un număr natural urmat de litera x
(litera x reprezentând necunoscuta), fie doar litera x (ceea ce este echivalent cu 1x).
De exemplu: 2x-5+10x+4=20-x
Observaţi, că în ecuaţii nu apar paranteze şi necunoscuta este întotdeauna desemnată de litera mică x.
Cerinţă: Scrieţi un program care să rezolve ecuaţii de gradul I, în formatul specificat în enunţul problemei.
Date de intrare: Fisierul de intrare ecu.in conţine o ecuaţie.
Date de ieşire: Fişierul de ieşire ecu.out va conține soluţia ecuaţiei - un număr real scris cu 6 zecimale,
dacă ecuația admite soluție unică. În cazul în care ecuaţia admite o infinitate de soluţii, se va scrie mesajul
infinit (cu litere mici). Dacă ecuaţia nu admite soluţii, se va scrie mesajul imposibil (de asemenea cu
litere mici).
Restricţii și precizări:
Lungimea unei ecuaţii nu depăşeşte 255 caractere; ecuaţiile nu conţin spaţii; numerele naturale care intervin în ecuaţii sunt
≤1000.
Exemplu:
ecuatie.in ecuatie.out
2x-4+5x+300=98x 3.252747
x+2=2+x Infinit
3x+5=3x+2 Imposibil
Problema 1. Figuri.
Printre toate jucăriile sale, Mihăiță dispune și de figuri geometrice: triunghiuri și pătrate. Mihăiță știe
următoarea informație despre figurile sale:
a) Numărul total de laturi ale tuturor fiigurilot este egal cu L;
b) Diferența dintre triunghiuri și pătrate este egală cu N;
De exepmlu, pentru figurile de mai sus avem L=38 și N=1.
Cerinţă: Scrieți un program care îl va ajuta pe Mihăiță să determine cîte triunghiuri și cîte pătrate are,
dacă știe valorile L și N.
Date de intrare:
De la tastatură se citesc 2 numere întregi L și N, care au respectiv semnificațiile: L-numărul total de laturi ale figurilor și N-
diferența dintre numărul de triunghiuri și numărul de pătrate.
Date de ieşire :
La ecran se vor afișa două numere naturale T și P, separate prin spațiu, care reprezintă respectiv numărul de triunghiuri și numărul
de pătrate printre figurile lui Mihăiță.
Restricţii şi precizări:
-100000≤N<L<100000;problema admite soluții pentru toate testele de evaluare.
Exemplu:
Intrare Ieșire Explicație
38 1 6 5 Printre figuri sunt 6 triunghiuri cu 63=18 laturi și 5 pătrate cu 54=20 laturi. În total
numărul de laturi este cu 18+20=38. Diferența lor: N=6-5=1.
Problema 2. Panglica.
Andrieș are o panglică alcătuită din benzi de 1 cm lăţime, colorate în diverse culori. Panglica are N benzi
colorate cu C culori pe care le vom numerota de la 1 la C. Andrieș vrea ca la ambele capete ale panglicii să
aibă aceeaşi culoare, dar cum nu poate schimba culorile benzilor, singura posibilitate rămâne tăierea unor
bucăţi de la capete.
Cerinţă: Scrieţi un program care să determine modul de tăiere a panglicii astfel încât la cele două capete să
fie benzi de aceeaşi culoare, iar lungimea panglicii obţinute să fie maximă.
Date de intrare:
Fişierul de intrare pang.in conţine:
– pe prima linie numerele naturale N şi C separate printr-un spaţiu;
– pe următoarele N linii descrierea panglicii: pe fiecare linie un număr natural de la 1 la C, reprezentând în ordine culorile
fâşiilor ce alcătuiesc panglica.
Date de ieşire:
Fişierul de ieşire pang.out va conţine următoarele 4 numere:
– pe prima linie numărul de fâşii rămase;
– pe linia a doua numărul culorii care se află la capete;
– pe linia a treia câte fâşii trebuie tăiate de la începutul panglicii iniţiale;
– pe linia a patra câte fâşii trebuie tăiate de la sfârşitul panglicii iniţiale.
Restricţii şi precizări:
2N1000; 1C200; dacă există mai multe soluţii alegeţi pe cea în care se taie cât mai puţin din partea de început a
panglicii.
Exemplul 1 Exemplul 2
pang.in pang.out pang.in pang.out
63 4 52 4
1 2 1 2
2 1 2 1
1 1 1 0
3 2
2 2
3
Problema 3. Litere.
Algorel a primit un joc care conţine n jetoane pe care sunt scrise litere mari ale alfabetului. Fiecare literă are asociat
un cod format dintr-o singură cifră nenulă. Jetoanele se aşează în ordinea dată iniţial, iar prin citirea literelor de pe
acestea, de la primul la ultimul jeton, se formează un cuvânt. Dacă se citesc numerele de pe fiecare jeton, începând de
la primul la ultimul, se obţine un număr k1. Jocul continuă la fel, dar se aşează jetoanele începând de la al doilea la
ultimul, obţinându-se un nou număr k2. Apoi, se aşează jetoanele începând de la al treilea la ultimul, obţinându-se un
nou număr k3, ş.a.m.d. până se ajunge la aşezarea doar a ultimului jeton, caz în care se obţine numărul kn.
Cerinţe:
Scrieţi un program care citeşte numărul n de jetoane, cele n litere asociate jetoanelor, precum şi codurile
asociate literelor, în ordinea apariţiei lor şi afişează:
a) numărul de perechi de litere consecutive din cuvântul iniţial care au proprietatea că o literă este
vocală şi cealaltă este consoană (ordinea lor nu contează);
b) numărul k1, format din aşezarea iniţială a jetoanelor;
c) suma k1+k2+…+kn.
Date de intrare: Fişierul de intrare litere.in va conţine pe prima linie valoarea lui n, reprezentând
numărul de jetoane, pe a doua linie un cuvânt format din n litere mari (de la ’A’ la ’Z’); literele sunt scrise
una după alta, fără să fie separate cu spaţii, astfel încât prima literă este cea aflată pe primul jeton, a doua
literă pe al doilea jeton ş.a.m.d. Pe a treia linie din fişier se află un număr m ce reprezintă numărul de litere
distincte, iar pe a patra linie m valori reprezentând codurile literelor distincte ce apar în cuvânt(eventual,
pentru careva litere diferite poate fi indicat același cod). Codurile sunt date în ordinea apariţiei literelor în
cuvânt şi sunt numere naturale nenule formate dintr-o singură cifră, separate printr-un spaţiu, pentru fiecare
literă codul fiind dat o singură dată, chiar dacă litera se repetă.
Date de ieşire: Fişierul de ieşire litere.out va conţine pe prima linie numărul de perechi de litere
consecutive din cuvânt care au proprietatea că o literă este vocală şi cealaltă consoană (ordinea lor nu
contează), pe a doua linie numărul k1, (format din aşezarea iniţială a jetoanelor), iar pe a treia linie suma k1+k2+
…+kn.
Restricţii şi precizări: 0 < n ≤ 10000, 0 < m < 27
Exemple:
litere.in litere.out Explicație
3 0 Nu există perechi de litere consecutive care să îndeplinească cerinţa.
CSC 121 Sunt 2 litere distincte{’C’,’S’}, cod(’C’)=1, cod(’S’)=2.
2 143 k1 = 121‚ k2 = 21‚ k3 = 1‚ iar k1+k2+k3 = 121 + 21 + 1 = 143
1 2
6 5 Există 5 perechi de litere consecutive care să îndeplinească cerinţa: {’CA’, ’AB’, ’BA’,
CABABE 256567 ’AB’, ’BE’}.
4 320342 Sunt 4 litere distincte{’C’, ’A’, ’B’, ’E’}, cod(’C’)=2, cod(’A’)=5, cod(’B’)=6,
2 5 6 7 cod(’E’)=7.
k1 = 256567‚ k2 = 56567‚ k3 = 6567‚ k4 = 567, k5 = 67, k6 = 7, iar
k1+k2+k3+k4+k5+k6 = 256567 + 56567 + 6567 + 567 + 67 + 7 = 320342
Классы10-12
Задача 1. Кувшин.
На празднике Нептуна - Бога воды, был организован конкурс, который оценивает оптимальные
способы переносить воду из бассейна емкостью C литров в другой бассейн той же ёмкости, который
первоначально является пустым. Участникам предоставляется 2 кувшина: первый емкостью 3 литра,
а второй емкостью 5 литров.
Требования: Напишите программу, которая будет определять, сколько раз использовали кувшин
ёмкостью 3 литра и сколько раз 5-литровый кувшин, чтобы перенести всю воду из первого бассейна
во второй бассейн за минимальное время. Каждый раз кувшин, который используется будет заполнен
водой полностью.
Задача 2. Уравнения.
Рассмотрим уравнение первой степени, в указанном формате: выражение_1 = выражение_2.
Выражения состоят из последовательности операндов, между которыми может быть знак + или знак -
(то есть сумма или разность, соответственно). Каждый операнд либо натуральное число, либо
натуральное число за которым следует буква х (х представляет неизвестную), или только букву х (что
эквивалентно 1x).
Требование: Напишите программу для решения уравнений первой степени, в указанном в задаче
формате. Заметим, что в уравнениях нет скобок, и неизвестная всегда обозначена через маленькую
букву x.
Задача 1. Фигуры.
Среди всех игрушек Михэицэ имеются и геометрические фигуры - треугольники и
квадраты. Михэицэ знает следующую информацию о своих фигурах:
а) общее количество сторон всех геометрических фигур равняется L;
б) Разность между количеством треугольников и квадратов равно N;
Например на приведенные ниже рисунки мы имеем L = 38 и N = 1.
Задача 2. Лента
Андриеш имеет ленту, изготовленную из полосок шириной 1 см, окрашенных в разные цвета. Лента
имеет N полос, окрашенных с помощью C цветов, они будут пронумерованы от 1 до С. Андриеш
хочет чтобы оба конца ленты имели одинаковый цвет, но так как он не может изменить цвет полос,
единственный выход остается резать сколько-то полос от концов.
Требование: Написать программу для определения способа резания ленты на двух концах так,
чтобы на концах были полосы того же цвета, а полученная длина ленты должна быть максимально
возможной.
Вход: Входной текстовый файл pang.in содержит:
– В первой строчке натуральные числа N и C разделенные через один пробел;
– Следующие N строк содержат описание ленты: в каждой строчке содержится одно натуральное
число от 1 до C - цвет полосок ленты.
Выход: Выходной текстовый файл pang.out будет содержать 4 числа:
- в первой строке – количество оставшихся полосок
- во второй строке – номер цвета полосок начала и конца ленты
- в третьей строке – количество полосок, которых надо обрезать в начале ленты
- в четвертой строке – количество полосок, которых надо обрезать в конце ленты
Ограничения и уточнения:
2N1000; 1C200; если существует несколько решений, выбрать то, при котором надо вырезать как можно меньше в
начале ленты.
Пример 1 Пример 2
pang.in pang.out pang.in pang.out
63 4 52 4
1 2 1 2
2 1 2 1
1 1 1 0
3 2
2 2
3
Задача 3. Буквы
Алгорел получил игру, содержащую жетоны, на которых написаны большие буквы
алфавита. Каждой букве присваивается код из одной ненулевой цифры. Жетоны расположены в
заданном порядке первоначально, и читая буквы с них, от первого до последнего жетона, получается
слово. Если прочитать номера на каждом жетоне, от первого до последнего, получается число
k1. Игра продолжается также и дальше, но жетоны размещаются начиная от второго до последнего, и
получается новое число k2. Затем размещаются жетоны от третьего до последнего, получая новое
число k3 и т.д., пока получается размещать только последний жетон, в этом случае получается число
kn.
Требования: Напишите программу, которая считывает число жетонов n, считывает n букв
присвоенных жетонам и связанные с ними коды букв в порядке их появления и выводит:
а) количество пар букв подряд идущих в исходном слове со свойством, что одна буква гласная, а
другая - согласная (их порядок не имеет значения);
б) число k1, состоящий из первичного размещения жетонов;
в) сумма k1+k2+…+kn.
Вход: Текстовый файл litere.in содержит в первой строке число n – количество жетонов, во второй
строке – слово состоящее из n больших латинских букв (от ’A’ до ’Z’); буквы записываются одна за
другой, без пробелов, так что первая буква – та что написана на первом жетоне, вторая – на втором
жетоне и т.д. На третьей строке содержится число m, представляющее количество различных букв, а
на четвертой строке - m значений, представляющих коды различных букв, которые появляются в
слове(может быть, что разным буквам присвоен одинаковые коды). Коды приведены в порядке их
появления в слове и представляют собой целые числа состоящие из одной цифры, разделенных
пробелом, для каждой буквы код дается только один раз, даже если буква повторяется.
Выход: Выходной файл litere.out будет содержать в первой строке количество пар последовательных
букв в слове имеющие свойство, что одна буква является согласной и одна гласной (их порядок не
имеет значения), во второй строке число k1 (образовано от первоначального размещения жетонов), а
третья строка - сумма k1+k2+…+kn.
Ограничения и уточнения:
0 < n ≤ 10000; 0 < m < 27
Примеры:
litere.in litere.out Обьяснение
3 0 Не существует пар подряд идущих букв с указанным в задаче свойством.
CSC 121 Есть 2 различные буквы{’C’,’S’}, cod(’C’)=1, cod(’S’)=2.
2 143 k1 = 121‚ k2 = 21‚ k3 = 1‚ k1+k2+k3 = 121 + 21 + 1 = 143
1 2
6 5 Существует 5 пар подряд идущих букв с указанным в задаче свойством {’CA’, ’AB’,
CABABE 256567 ’BA’, ’AB’, ’BE’}.
4 320342 Есть 4 различных букв{’C’, ’A’, ’B’, ’E’}, cod(’C’)=2, cod(’A’)=5, cod(’B’)=6,
2 5 6 7 cod(’E’)=7.
k1 = 256567‚ k2 = 56567‚ k3 = 6567‚ k4 = 567, k5 = 67, k6 = 7,
k1+k2+k3+k4+k5+k6 = 256567 + 56567 + 6567 + 567 + 67 + 7 = 320342