0571 - Sah

From Bitnami MediaWiki
Revision as of 12:42, 6 January 2024 by Ramona Dragoș (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința[edit | edit source]

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[edit | edit source]

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

Date de ieșire[edit | edit source]

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[edit | edit source]

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

Exemplu 1[edit | edit source]

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


Exemplu 2[edit | edit source]

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


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 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)

</syntaxhighlight>