10^18 to nawet w tym zadaniu pikuś. Po poprawkach, kod "rozprawia" się z takimi wartościami. bez problemu. Gorzej z wartością 2^64-1 == 18446744073709551615 - w c/c++ to unsigned long long, a taka jest max granica. Niby pyton obsługuje wartości dowolnej wielkości ale tu ma problem - może poprzez wymuszanie typu int(), nie znam na tyle pythona. Sam przetestuj na poniższym teście:
4
3
2 3 5
3
6 9 15
5
10 10000000000000000000 10000000000000000000 10000000000000000000 10000000000000000000
2
18446744073709551615 18446744073709551615
itd
PS
Po dalszych poprawkach i zmianach kodu, na ideone.com powyższy test przechodzi, ale na spoj'u nadal NZEC
PS 2
Po zmianie .. .split(" ") na ... .split(), jest już trochę lepiej - jest już WA - na ideonie można w testach dodać trochę nadmiarowych spacji, i wtedy wychodzi różnica między split() a split(" ")
PS 3
Nie przechodzi testów gdzie ai > 9223372036854775808 [max signed long long] and ai < 2^64-1 [max unsignet long long] <-- mam na myśli bardzo mocno poprawiony twój kod.