Problemi 139
Kërkesa
Në një dyqan çokollatash shkon një turist. Shitësi dhe turisti nuk e dinë gjuhën e njëri-tjetrit, por turisti tregon me dorë një lloj çokollatash dhe i jep shitësit disa kartëmonedha. Duke ditur çmimin e një çokollate shitësi mund ta marrë me mend se sa copë do që të blejë turisti. Por nqs duke hequr një prej kartëmonedhave mund të blihet përsëri i njëjti numër çokollatash, atere ky është një rast i paqartë dhe shitësi nuk di çfarë të bëjë, kështu që ia kthen lekët mbrapsht turistit.
Bëni një program që merr çmimin e një çokollate dhe kartëmonedhat që jep turisti dhe gjen se sa copë çokollata do që të blejë turisti. Nëse rasti është i paqartë programi duhet të nxjerrë -1.
Referenca: https://www.codechef.com/problems/BUYING2
Shembull
$ cat input.txt
3
4 7
10 4 8 5
1 10
12
2 10
20 50
$ python3 prog.py < input.txt
-1
1
7
Në rastin e parë, sasia gjithsej e parave është 27, dhe meqë çmimi është 7, turisti mund të marrë vetëm 3 copë. Por nqs nuk do kishte dhënë kartëmonedhën 5 përsëri do merrte 3 copë. Kështu që është rast i paqartë.
Në rastin e dytë sasia e parave është 12, çmimi 10, kështu që mund të marrë 1 çokollatë.
Në rastin e tretë sasia e parave është 20+50, çmimi 10, mund të marrë 7 çokollata.
Zgjidhja
for _ in range(int(input())):
n, x = map(int, input().split())
A = list(map(int, input().split()))
print(sum(A) // x) if (sum(A) % x < min(A)) else print(-1)
Sqarime
Nqs mbetja e parave (restoja) është më e madhe se ndonjëra nga kartëmonedhat, kjo do të thotë që po ta heqim atë kartëmonedhë përsëri mund të blejmë të njëjtën sasi çokollatash, kështu që rasti është i paqartë.