0571 - Sah

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerința

O tablă de șah generalizată de tip n m k este o matrice cu n linii (numerotate de la 1 la n) și m coloane (numerotate de la 1 la m) cu elemente 0 și 1 grupate în pătrate alternante de dimensiune k, pătratul din care face parte elementul (1 1) fiind format din 0.

Construiți o tablă de șah generalizată de tip n m k.

Date de intrare

Programul citește de la tastatură numerele n m k.

Date de ieșire

Programul va afișa pe ecran matricea construită, câte o linie a matricei pe o linie a ecranului; elementele unei linii nu sunt separate prin spații sau alte caractere.

Restricții și precizări

  • 1 ⩽ n, m ⩽ 1000
  • 1 ⩽ k ⩽ min(n,m)
  • k este divizor pentru n și pentru m

Exemplu 1

Intrare
6 8 2
Ieșire
00110011
00110011
11001100
11001100
00110011
00110011


Exemplu 2

Intrare
1 0 -1
Ieșire
Nu sunt respectate restrictiile


Rezolvare

#0517 - Sah
def is_valid_input(n, m, k):
    return 1 <= n <= 1000 and 1 <= m <= 1000 and 1 <= k <= min(n, m) and n % k == 0 and m % k == 0

def generate_chess_table(n, m, k):
    if not is_valid_input(n, m, k):
        print("Nu sunt respectate restricțiile.")
        return

    chess_table = [[0] * m for _ in range(n)]

    for i in range(n):
        for j in range(m):
            if (i // k) % 2 == (j // k) % 2:
                chess_table[i][j] = 0
            else:
                chess_table[i][j] = 1

    for row in chess_table:
        print("".join(map(str, row)))

if __name__ == "__main__":
    n, m, k = map(int, input("Introduceți n, m și k (separate prin spațiu): ").split())
    generate_chess_table(n, m, k)