2448 - Pătrate3: Difference between revisions
Dragos1234 (talk | contribs) |
Dragos1234 (talk | contribs) |
||
Line 7: | Line 7: | ||
== Date de intrare == | == Date de intrare == | ||
Programul citește de la tastatură numerele '''n''', '''x''', '''y''', '''val''', separate prin spații. | |||
== Date de ieșire == | == Date de ieșire == |
Revision as of 12:21, 9 April 2023
Sursa: [1]
Cerinţa
Pentru valorile n, x, y, val date, trebuie să determinați:
- ce valoare V se află în pătratul n x n la poziția (x, y).
- la ce poziție (i, j) se află valoarea val în pătratul n x n.
Date de intrare
Programul citește de la tastatură numerele n, x, y, val, separate prin spații.
Date de ieșire
Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" si fișierul de ieșire grupapregatitoare.out va conține pe prima linie numărul S, iar pe a doua linie numărul L. În caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor.".
Restricţii şi precizări
- 3 ⩽ n ⩽ 2000
- 2 ⩽ p ⩽ 1000
- numerele de pe cartonaşele elevilor sunt nenule şi mai mici decât 1001
- există cel puţin un număr divizibil cu p pe un cartonaş
Exemplul 1
- Intrare
- grupapregatitoare.in
- 3 7
- 1 2
- 21 4
- 5 6
- Ieșire
- grupapregatitoare.out
- 29
- 3
Exemplul 2
- Intrare
- grupapregatitoare.in
- 100000000 1000000
- 1 2
- 21 4
- 5 6
- Ieșire
- grupapregatitoare.out
- Datele introduse nu corespund cerintelor.
Rezolvare
<syntaxhighlight lang="python" line>
- 2248
def is_valid_input(n, x, y, v):
if not (1 <= n <= 20000): print("Datele introduse nu corespund cerintelor.") exit() if not (1 <= x <= n) or not (1 <= y <= n): print("Datele introduse nu corespund cerintelor.") exit() if not (1 <= v <= n ** 2): print("Datele introduse nu corespund cerintelor.") exit() return True
def calculate_coordinates(n, x, y, v):
# Verifică dacă intrările sunt valide if not is_valid_input(n, x, y, v): return None
# Calculează coordonatele folosind formulele din program coord_x = (x - 1) * n + y coord_y = v // n if v % n == 0 else v // n + 1 coord_z = n if v % n == 0 else v % n
return (coord_x, coord_y, coord_z)
def main():
n = int(input()) x = int(input()) y = int(input()) v = int(input())
# Calculează coordonatele folosind funcția definită anterior coords = calculate_coordinates(n, x, y, v)
if coords is None: print("Input invalid") else: # Afișează coordonatele separate printr-un spațiu print("Datele introduse corespund cerintelor.") print(coords[0], coords[1], coords[2])
main()
</syntaxhighlight>