2574 - Val 1

De la Universitas MediaWiki

Cerința

Se citeste n și m. Să se reprezinte următoarea diagramă în funcție de n și m, în care n reprezintă înălțimea, iar m numărul de valuri care compun diagrama. Diagrama este formată din caractere 0, interiorul și exteriorul valurilor sunt alcătuite din caractere _.

Date de intrare

Programul citește numerele n m.

Date de ieșire

Programul va afișa o diagrama cerută.

Restricții și precizări

1 ≤ n ≤ m ≤ 20

Exemplul 1:

Intrare 5 4

Ieșire

__0_0_____0_0_____0_0_____0_0___

_0___0___0___0___0___0___0___0__

_0___0___0___0___0___0___0___0__

_0___0___0___0___0___0___0___0__

0_____0_0_____0_0_____0_0_____0_

Exemplul 2:

Intrare

6 8

Ieșire

__0_0_____0_0_____0_0_____0_0_____0_0_____0_0_____0_0_____0_0___

_0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0__

_0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0__

_0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0__

_0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0__

0_____0_0_____0_0_____0_0_____0_0_____0_0_____0_0_____0_0_____0_

Rezolvare

def validare(n, m):
    """
    Functie care verifica daca valorile citite pentru n si m respecta restrictiile problemei.
    """
    if not (1 <= n <= 20 and 1 <= m <= 20):
        print("Date de intrare incorecte!")
        exit()


def rezolvare(n, m):
    """
    Functie care construieste si afiseaza figura ceruta in functie de valorile lui n si m.
    """
    # initializam matricea cu caractere "_"
    for j in range(1, n + 1):
        for i in range(1, 8 * m + 1):
            if j == 1:
                if i % 8 == 3 or i % 8 == 5:
                    print('0', end='')
                else:
                    print('_', end='')
            elif j == n:
                if i % 8 == 1 or i % 8 == 7:
                    print('0', end='')
                else:
                    print('_', end='')
            else:
                if i % 8 == 2 or i % 8 == 6:
                    print('0', end='')
                else:
                    print('_', end='')
        print()


if __name__ == "__main__":
    # citim valorile n si m
    n, m = map(int, input().split())
    # validam datele de intrare
    if validare(n, m):
        print("Date de intrare valide")
        # rezolvam problema si afisam rezultatul
        rezolvare(n, m)