0571 - Sah: Difference between revisions
Pagină nouă: == 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 co... |
|||
Line 15: | Line 15: | ||
:6 8 2 | :6 8 2 | ||
;Ieșire | ;Ieșire | ||
00110011 | :00110011 | ||
00110011 | :00110011 | ||
11001100 | :11001100 | ||
11001100 | :11001100 | ||
00110011 | :00110011 | ||
00110011 | :00110011 | ||
<br> | <br> | ||
== Exemplu 2 == | == Exemplu 2 == | ||
;Intrare | ;Intrare |
Revision as of 18:29, 12 December 2023
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
<syntaxhighlight lang="python" line>
- 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>