1932 - PC: Difference between revisions
Paul Ungur (talk | contribs) Pagină nouă: ==Cerința== Gigel vrea un calculator nou care are prețul <span style=“color: red”> x</span>. Tatăl acestuia, fiind profesor de matematica, i-a spus ca îi va cumpăra calculatorul dacă prețul <span style=“color: red”> x</span> al acestuia este norocos. Un număr <span style=“color: red”> x</span> este norocos dacă pătratul acestuia se poate scrie ca sumă de <span style=“color: red”> x</span> numere consecutive. De exemplu, <span style=“color: red”>... |
Paul Ungur (talk | contribs) No edit summary |
||
Line 15: | Line 15: | ||
==Exemplu:== | ==Exemplu:== | ||
<span style=“color: red”> pc.in</span> | <span style=“color: red”> pc.in</span> | ||
def validare(n, nums): | |||
if not (1 <= n <= 2_000_000_000): | |||
return False | |||
if not all(0 <= nums < 10 for nums in nums): | |||
return False | |||
return True | |||
def pc(n, nums): | |||
for i in range(n): | |||
def | if nums[i] % 2 == 0: | ||
for | fout.write("0 ") | ||
if | |||
else: | else: | ||
fout.write("1 ") | |||
if __name__ == '__main__': | |||
fin = open("pc.in") | |||
fout = open("pc.out", "w") | |||
n = int(fin.readline().strip()) | |||
nums = list(map(int, fin.readline().split())) | |||
if validare(n, nums): | |||
print("Date de intrare valide") | |||
pc(n, nums) | |||
else: | |||
print("Date de intrare invalide") | |||
fin.close() | |||
fout.close() | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 16:18, 26 April 2023
Cerința
Gigel vrea un calculator nou care are prețul x. Tatăl acestuia, fiind profesor de matematica, i-a spus ca îi va cumpăra calculatorul dacă prețul x al acestuia este norocos. Un număr x este norocos dacă pătratul acestuia se poate scrie ca sumă de x numere consecutive. De exemplu, x = 7 este număr norocos deoarece, 7 * 7 = 4 + 5 + 6 + 7 + 8 + 9 + 10. Gigel a obţinut T oferte de preț și dorește să știe pentru fiecare dintre acestea dacă prețul este corespunzătar restricției pe care i-a impus-o tatăl său.
Date de intrare
Fișierul de intrare pc.in conține pe prima linie un singur număr natural T, reprezentând numărul de oferte. Pe a doua linie se află T numere naturale x1 x2 x3 … xT separate prin câte un spaţiu, cu semnificația din enunț.
Date de ieșire
Fișierul de ieșire pc.out va conține pe prima linie, separate prin câte un spațiu, cele T răspunsuri, în ordine: 1 dacă oferta este corespunzătoare restricției impuse și 0 în caz contrar.
Restricții și precizări
x < 2.000.000.000 T < 10
Exemplu:
pc.in def validare(n, nums):
if not (1 <= n <= 2_000_000_000): return False if not all(0 <= nums < 10 for nums in nums): return False return True
def pc(n, nums):
for i in range(n): if nums[i] % 2 == 0: fout.write("0 ") else: fout.write("1 ")
if __name__ == '__main__':
fin = open("pc.in") fout = open("pc.out", "w")
n = int(fin.readline().strip()) nums = list(map(int, fin.readline().split())) if validare(n, nums): print("Date de intrare valide") pc(n, nums) else: print("Date de intrare invalide")
fin.close() fout.close()
</syntaxhighlight>