2022 city statements

This commit is contained in:
2025-04-05 20:00:08 +03:00
parent 3f9c82797d
commit 305f89bc3e
5 changed files with 302 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
# Римские арифметические выражения
* Городская Олимпиада Молдовы по информатике
* Год: 2022
* Класс: 12
* Задача: 2
В римской системе счисления используется 7 цифр, представленные следующими буквами латинского алфавита: I, V, X, L, C, D и M. В детсятичной системе рассматриваемые цифры имеют следующие значения:\
`I - 1`\
`V - 5`\
`X - 10`\
`L - 50`\
`C - 100`\
`D - 500`\
`M - 1000`
Напоминаем, что римская система счисления является непозиционной. Число, записанное в римской системе, читается слева направо. Десятичное значение числа определяется путем суммирования отдельных десятичных значений каждой из цифр, если только текущая цифра не предшествует цифре с более высоким значением. В этом случае десятичное значение текущей цифры вычитается из десятичного значения следующей цифры.\
Примеры:
`X - 10`\
`IX - 9`\
`XIII - 13`\
`XIV - 14`\
`MMCIX - 2109`\
`MMXXII - 2022`
# Задание
Напишите программу для вычисления десятичного значения римских арифметических выражений.
# Входные данные
Файл `expresii.in` содержит в единственной строке римское арифметическое выражение.
# Выходные данные.
Файл `expresii.out` должен содержать в единственной строке целое число значение римского арифметического выражения из входного файла, записанное в десятичной системе счисления.
# Ограничения.
* Абсолютное десятичное значение римского арифметического выражения из входного файла не превышает `2 * 10^9`. Ограничения на время выолнения и на объём используемой памяти приведены на странице "Общее описание задач".
Исходный файл должен иметь одно из названий `expresii.pas`, `expresii.c` или `expresii.cpp`
# Пример 1
`expresii.in`
```
XIV*MMCIX-MMXXII+V*XL
```
\
\
`expresii.out`
```
27704
```
# Похожие задачи
1. [227. Basic Calculator II](https://leetcode.com/problems/basic-calculator-ii/)
2. [13. Roman to Integer](https://leetcode.com/problems/roman-to-integer/)

View File

@@ -0,0 +1,66 @@
# Grupuri / Группы
* Городская олимпиада Кишинева по информатике
* Год 2022
* 12 класс
* Задача 3
Фирма ABC-Soft имеет `m` служащих и располагает компьютерной сетью. Каждый пользователь идентифицируется с помощью индивидуального целого числа, состоящего из шести цифр. Сервер сети предоставляет в общее пользование жесткий диск, корневой каталог которого имеет `n` подкаталогов. Для каждого подкаталога существует список, в котором указаны пользователи, имеющие доступ к его файлам. В общем случае
пользователь имеет доступ к одному или к нескольким подкаталогам.
Администратор сети желает разбить множество пользователей на отдельные группы. Два пользователя могут быть включены в одну и ту же группув том и только в том случае если оба имеют доступ к одним и тем же подкаталогам.
Напишите программу, которая получая на входе списки пользователей каждого из подкаталогов, вычисляет количество групп пользователей `К`.
# Входные данные
Текстовый файл `grupuri.in` содержит в первой строке одно целое число - количество тестов `T`. Далее следуют `T` тестов. В первой строке теста находится количество подкаталогов `n`. Следующие `n` строк входного файла содержат списки пользователей, по одному списку в каждой строке. Первым в строке `i + 1` записано целое число `m[i]` количество пользователей которые имеют доступ к файлам из подкаталога `і`, далее, в том же строке записаны идентификационные номера соответствующих пользователей, все числа разделены пробелами.
# Выходные данные
Текстовый файл `grupuri.out` должен содержать в единственной строке целое число — число групп пользователей `k`.
# Ограничения
* 1 <= n <= 100.
* Для первых 10 тестов 1 <= m <= 100; 1 <= m[i] <= 100, i = 1, 2, 3, ..., п.
* Для следующих 10 тестов 1 <= m <= 10000; 1 <= m[i] <= 10000, i = 1, 2, 3, ..., п.
* Идентификационные номера пользователей состоят из шести цифр, включая, при необходимости, незначащие нули, и находятся в интервале [1, 999999].
* Ограничения на время выполнения и на объем используемой памяти приведены на странице «Общее описание задач».
* Исходный файл должен иметь имя grupuri.pas, grupuri.c или grupuri.cpp.
# Пример
`tests.in`
```
1
5
2 010000 020000
3 020000 010000 999999
3 020000 999999 010000
1 999999
2 O30000 999999
```
`tests.out`
```
3
```
# Объяснение
Все участники группы должны иметь допступ ко всем подкаталогам,
к которым имеет доспут каждый член группы.
```
группа) подкаталоги (служащие)
a) 1, 2, 3 (1, 2)
b) 2, 3, 4, 5 (9)
c) 5 (3)
```
Группа a) имеет доступ к 1, 2, 3 подкаталогам (все её участники должны иметь доспут к этим подкаталогам).
Группа b) имеет доступ к 2, 3, 4, 5 подкаталогам. К этим подкаталогам имеет доступ только 1 служащий `9`.
Группа c) имеет доступ к 5 подкаталогу. В неё входит служащий `3`. В неё не может входить служащий `9`, потому что в таком случае все участники этой группы должны иметь доспут к подкаталогам `9` служащего, а служащий `3` имеет доступ только к 5-му подкаталогу.