Skip to content
Snippets Groups Projects

Add input output for offline problem

Closed Raat, M.H. (Marien) requested to merge add-input-output into master
4 files
+ 93
24
Compare changes
  • Side-by-side
  • Inline
Files
4
+ 63
2
import array
import click
from cinematinator.offline import Offline
from cinematinator.types import Cinema, SeatStatus
@click.command()
@click.group()
def cli() -> None:
click.echo("Todo")
pass
@click.command()
def offline() -> None:
Program().offline()
@click.command()
def online() -> None:
Program().online()
cli.add_command(offline)
cli.add_command(online)
if __name__ == "__main__":
cli()
class Program:
def _read_cinema(self) -> Cinema:
height = int(input())
width = int(input())
seats = []
for _ in range(height):
row = input()
for seat in row:
if seat == "0":
seats.append(SeatStatus.NoSeat.value)
elif seat == "1":
seats.append(SeatStatus.Available.value)
return Cinema(width, height, array.array("b", seats))
def _print_cinema(self, cinema: Cinema) -> None:
for y in range(cinema.height):
for x in range(cinema.width):
print(
{
SeatStatus.NoSeat: "0",
SeatStatus.Available: "1",
SeatStatus.Blocked: "1",
SeatStatus.Taken: "x",
}[cinema.get_seat(x, y)],
end="",
)
print()
def offline(self) -> None:
cinema = self._read_cinema()
groups = [int(x) for x in input().split(" ")]
offline = Offline(cinema, groups)
solved_cinema = offline.solve()
self._print_cinema(solved_cinema)
def online(self) -> None:
pass
Loading