Files
algorithms-26/task5/main.py
2026-02-26 16:13:49 +06:00

42 lines
1.3 KiB
Python

from enum import Enum
from typing import Final
class Mouse(Enum):
undefined = None
grey = 0
white = 1
grey, white = map(int, input().split())
if grey < 1 or white < 0:
raise ValueError("Неправильное количество мышей")
S: Final[int] = int(input())
grey_remaining, white_remaining = map(int, input().split())
total_remaining: int = grey_remaining + white_remaining
mice: list[int] = [i for i in range(grey + white)]
eaten: list[int] = []
current_mouse = 0
while len(mice) > total_remaining:
current_mouse = (current_mouse + S) % len(mice)
eaten.append(mice[current_mouse])
mice.pop(current_mouse)
pattern: list[Mouse] = [Mouse.undefined] * (grey + white)
pattern[0] = Mouse.grey
for i in range(grey_remaining):
pattern[mice.pop(0)] = Mouse.grey
for i in range(white_remaining):
pattern[mice.pop(0)] = Mouse.white
for i in range(grey - grey_remaining):
pattern[eaten.pop(0)] = Mouse.grey
for i in range(white - white_remaining):
pattern[eaten.pop(0)] = Mouse.white
if len([a for a in pattern if a == Mouse.grey]) != grey or pattern[0] != Mouse.grey:
raise ValueError(f"Невозможный исход: {" ".join(str(mouse.value) for mouse in pattern)}")
print(*(str(mouse.value) for mouse in pattern))