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: 295
        
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