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... |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
== Cerința == | == 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. | 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. | Construiți o tablă de șah generalizată de tip '''n m k'''. | ||
== Date de intrare == | == Date de intrare == | ||
Programul citește de la tastatură numerele n m k. | Programul citește de la tastatură numerele '''n m k'''. | ||
== Date de ieșire == | == 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. | 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 == | == Restricții și precizări == | ||
*1 ⩽ n, m ⩽ 1000 | *'''1 ⩽ n, m ⩽ 1000''' | ||
*1 ⩽ k ⩽ min(n,m) | *'''1 ⩽ k ⩽ min(n,m)''' | ||
*k este divizor pentru n și pentru m | *'''k''' este divizor pentru '''n''' și pentru '''m''' | ||
== Exemplu 1 == | == Exemplu 1 == | ||
;Intrare | ;'''Intrare''' | ||
: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''' | ||
:1 0 -1 | :1 0 -1 | ||
;Ieșire | ;'''Ieșire''' | ||
:Nu sunt respectate restrictiile | :Nu sunt respectate restrictiile | ||
<br> | <br> |
Latest revision as of 12:42, 6 January 2024
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>
- 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>