My code gives answer with many big and small test cases. Why do I get NZEC?
from __future__ import division
import sys
"""def modularpow(base, exponent, mod):
r = 1
while exponent > 0:
if exponent%2==1: r = (r*base)%mod
exponent = int(exponent) >> 1
base = (base*base)%mod
return r"""
def main():
s = sys.stdin.readline
t = int(s())
for i in range(t):
a, d, r = map(int, s().split())
n, mod = map(int, s().split())
if n%2:
if r==1:
ans = (a+d*(n//2))%mod
else:
y = (n+1)//2-1
ans = (a+d)*pow(r, y, mod)+d*r*(pow(r, y-1, mod)-1)//(r-1)
else:
if r==1:
ans = (a+d*(n//2))%mod
else:
y = (n//2)-1
ans = (a+d)*pow(r, y, mod)+d*(pow(r, y, mod)-1)//(r-1)
print (ans+mod)%mod
if __name__ == '__main__':
main()
EDIT: Now I get WA. Can I get some test cases?