1932 - PC: Difference between revisions
Paul Ungur (talk | contribs) No edit summary |
Paul Ungur (talk | contribs) No edit summary |
||
Line 14: | Line 14: | ||
==Exemplu:== | ==Exemplu:== | ||
< | <syntaxhighlight lang="python" line> | ||
def validare(n, nums): | def validare(n, nums): | ||
if not (1 <= n <= 2_000_000_000): | if not (1 <= n <= 2_000_000_000): |
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:
<syntaxhighlight lang="python" line> 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>