9 / 9
Feb 2018

Zmienną P zwiększasz ciągle o jej wielokrotność, a masz ją zadeklarowaną jako integer, jednak ona przyjmuje wartość max. 10^9, a to jest granica 32 bitowego integera, jeżeli Ty ją zwiększasz, a nie jest ona longiem to Twoje liczby się pokrzaczą

W najgorszym wypadku będziesz miał podadany test:
1
10000 863999999
1
1
1
.
.
.
itd, same jedynki

a więc Twój wynik osiagnie : 864000000, gdzie liczba ciastek w pudełku = 863999999 czyli o jeden mniej, więc Twój algorytm zrobi p += p2 czyli 863999999 + 863999999, a więc 1727999998 i tutaj program isę wydupi, ponieważ ta liczba przekracza 10^9, a więc 32-bitowy integer jest zbyt mały, aby pomieścić tę liczbę, potrzebujesz tutaj longa

Tylko, że w Pythonie 3 nie ma longa. Z tego co wiem int działa jak stary long.

a jestes pewien ze to jest zła odpowiedź a nie przekroczony limit czasu? Bo Twój algorytm wyglada jakby dla testu:

1
10000 1
1
1
1
.
.
itd.

miał zrobić finalnie w drugiej pętli while 864000000 operacji, co stanowczo przekracza limit czasu

Twój kod zwróci błedną odpowiedź dla testu:

1
2 2
99999
99999

Tobie zwróci 1, ponieważ wynik ustawiasz domyślnie na 1, a w tym przypadku żaden z graczy nie da rady zjeść ciastka przed upływem doby, więc ilość pudełek potrzebnych do kupienia na konkurs = 0