1767 - Multiple
Sergiu, fiind un elev talentat în ceea ce priveşte informatica, doreşte pe cât posibil să-şi ajute prietenii în rezolvarea problemelor. Prietenii lui au venit la el, fiind foarte confuzi în legătură cu o anumită problemă: Ei au un set de T întrebări de forma: Care este cel mai mic număr strict mai mare decât n, divizibil cu k? Fiind ocupat cu pregătirea pentru OJI, el vă roagă pe voi să-l ajutaţi!
Cerința
Pentru fiecare din cele T întrebări, să se afle cel mai mic număr strict mai mare decât n care este divizibil cu k.
Date de intrare
Fișierul de intrare multiple.in conține pe prima linie numărul T, iar următoarele T linii conţin câte două numere, n şi k, cu semnificaţia din enunţ.
Date de ieșire
Fișierul de ieșire multiple.out va conține pe T linii, pentru fiecare întrebare, numărul cerut.
Restricții și precizări
1 ≤ T ≤ 10000 se recomandă utilizarea tipurilor de date pe 8 octeţi (64 de biţi) dacă reuşiţi să-l ajutaţi pe Sergiu, pe lângă cele 100 de puncte, probabil el vă va face cinste şi cu o sticlă de apă minerală
Exemplu:
multiple.in 5 1 2 3 7 24 9 13 223 45 9
multiple.out 2 7 27 223 54
Rezolvare
<syntaxhighlight lang="python" line> def validare_date(n):
if n < 1 or n > 10000:
print("n trebuie sa fie intre 1 si 10000")
return False
return True
def multiple(n):
for i in range(n):
a, b = map(int, fin.readline().strip().split())
if a == b:
fout.write(str(2 * b) + "\n")
elif a < b:
fout.write(str(b) + "\n")
else:
fout.write(str(b - (a % b) + a) + "\n")
fin.close()
fout.close()
if __name__ == '__main__':
fin = open("multiple.in")
fout = open("multiple.out", "w")
n = int(fin.readline().strip())
if validare_date(n):
print("Date de intrare valide")
multiple(n)
</syntaxhighlight>