Any better algorithm possible here?

Posted by Cupidvogel on Stack Overflow See other posts from Stack Overflow or by Cupidvogel
Published on 2012-09-02T09:35:55Z Indexed on 2012/09/02 9:37 UTC
Read the original article Hit count: 237

Filed under:
|

I am trying to solve this problem in Python. Noting that only the first kiss requires the alternation, any kiss that is not a part of the chain due to the first kiss can very well have a hug on the 2nd next person, this is the code I have come up with. This is just a simple mathematical calculation, no looping, no iteration, nothing. But still I am getting a timed-out message. Any means to optimize it?

import psyco
psyco.full()
testcase = int(raw_input())
for i in xrange(0,testcase):
    n = int(raw_input())
    if n%2:
        m = n/2;
        ans = 2 + 4*(2**m-1);
        ans = ans%1000000007;
        print ans
    else:
        m = n/2 - 1
        ans = 2 + 2**(n/2) + 4*(2**m-1);
        ans = ans%1000000007
        print ans

© Stack Overflow or respective owner

Related posts about python

Related posts about algorithm