second file solution was finished
This commit is contained in:
86
README.md
86
README.md
@@ -175,3 +175,89 @@ else:
|
|||||||
print("Нет.")
|
print("Нет.")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Решение задач из файла `Задания_олимпиады_инф.docx`
|
||||||
|
**1.** Для детей решили вырезать разные геометрические фигуры: круг, треугольник, квадрат. Каждой фигуры по одной. Сколько останется бумаги по площади после обрезки. Считается, что все фигуры можно вырезать на листе бумаге размером AxB. Для каждой фигуры даны соответствующие параметры: для круга - радиус, для квадрата и треугольника равностороннего - длина стороны.
|
||||||
|
Пример:
|
||||||
|
| Ввод | Вывод |
|
||||||
|
| --- | --- |
|
||||||
|
| 5 6<br>1 2 3 | 18.96 |
|
||||||
|
**Решение:**
|
||||||
|
```Python
|
||||||
|
from math import pi, sqrt
|
||||||
|
|
||||||
|
a, b = input().split(" ")
|
||||||
|
r, f, h = input().split(" ")
|
||||||
|
a, b, r, f, h = int(a), int(b), int(r), int(f), int(h)
|
||||||
|
|
||||||
|
paperSquare = a*b
|
||||||
|
rectSquare = f**2
|
||||||
|
circleSquare = r**2*pi
|
||||||
|
triangleSquare = (h**2*sqrt(3))/4
|
||||||
|
result = round(paperSquare-circleSquare-rectSquare-triangleSquare, 2)
|
||||||
|
print(result)
|
||||||
|
```
|
||||||
|
**2.** Красивое число делится на 7 и не содержит повторяющихся цифр, например, 21 - красивое число, а 77 - нет. Найти на заданном отрезке все красивые числа. Если таких чисел нет, то вывести сообщение "NO".
|
||||||
|
| Ввод | Вывод |
|
||||||
|
| --- | --- |
|
||||||
|
| 5 20 | 7 14 |
|
||||||
|
**Решение:**
|
||||||
|
```Python
|
||||||
|
a, b = input().split(" ")
|
||||||
|
a, b = int(a), int(b)
|
||||||
|
|
||||||
|
def isPrettyNumber(n):
|
||||||
|
digits = [i for i in str(n)]
|
||||||
|
unique_digits = set(digits)
|
||||||
|
return n % 7 == 0 and len(digits) == len(unique_digits)
|
||||||
|
|
||||||
|
existPrettyNumbers = False
|
||||||
|
for i in range(a, b+1):
|
||||||
|
if isPrettyNumber(i):
|
||||||
|
print(i, end=" ")
|
||||||
|
existPrettyNumbers = True
|
||||||
|
|
||||||
|
if not existPrettyNumbers:
|
||||||
|
print("NO")
|
||||||
|
else:
|
||||||
|
print()
|
||||||
|
```
|
||||||
|
**3.** Рыбаки поймали карпа, карася, ерша и т.д. Не все смогли выловить весь набор рыб. Каждому хочется отнести домой один и тот же комплект рыб. Смогут ли они это сделать, если собрать каждого вида рыб и разделить поровну? Учтите, что рыбы должны быть целыми.
|
||||||
|
####### Формат ввода
|
||||||
|
В первой строке вводится через пробел N количество рыбаков и P количество наименований рыб. Каждое число не превосходит 10 000. Далее в каждой N-ой строке записаны P чисел - количество рыб соответствующих наименований (от 0 до 109).
|
||||||
|
####### Формат вывода
|
||||||
|
На первой строке вывести "Yes", если это возможно и далее на второй строке соответствующее количество рыб каждого наименования через пробел. Если это не возможно, то вывести "No".
|
||||||
|
Пример:
|
||||||
|
| Ввод | Вывод |
|
||||||
|
| --- | --- |
|
||||||
|
| 3 2<br>12 6<br>0 8<br>3 1 | Yes<br>5 5 |
|
||||||
|
**Решение:**
|
||||||
|
```Python
|
||||||
|
fishersmen, categories = input().split(" ")
|
||||||
|
fishersmen, categories = int(fishersmen), int(categories)
|
||||||
|
fish = [0 for _ in range(categories)] # Заполняем массив нулями
|
||||||
|
# [0, 0, 0, ... P]
|
||||||
|
|
||||||
|
for i in range(fishersmen):
|
||||||
|
# Ниже собираем сколько каждого вида рыбы поймал рыбак
|
||||||
|
# Это список вида [8, 4, 6, ... P]
|
||||||
|
collectedFish = input().split(" ")
|
||||||
|
# Ниже преобразуем каждый элемент списка из строки в число
|
||||||
|
collectedFish = [int(i) for i in collectedFish]
|
||||||
|
# Прибавляем количесво пойманной рыбы каждого вида к списку fish
|
||||||
|
for j, fishAmount in enumerate(collectedFish):
|
||||||
|
fish[j] += fishAmount
|
||||||
|
|
||||||
|
# Далее просто проверяем делится ли количество пойманной рыбы нацело
|
||||||
|
# на количество рыбаков
|
||||||
|
canDivide = True
|
||||||
|
for i in fish:
|
||||||
|
if i % fishersmen != 0:
|
||||||
|
canDivide = False
|
||||||
|
|
||||||
|
if canDivide:
|
||||||
|
print("Yes")
|
||||||
|
fishAmount = [str(i//fishersmen) for i in fish]
|
||||||
|
print(" ".join(fishAmount))
|
||||||
|
else:
|
||||||
|
print("No")
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user