import time import sys class create_node: def __init__(self,num): self.num=num self.next=None class linked_list: def __init__(self): self.head=None def push(self,num): if self.head==None: self.head=create_node(num) else: new_node=create_node(num) new_node.next=self.head self.head=new_node def pop(self): if self.head==None: print "no element to pop" return else: data=self.head.num self.head=self.head.next return data def print_list(self): f1=open("out1.txt","w") node=self.head global count global count1 global count2 while node: f1.write(str(node.num)+",") node=node.next count=count+1 f1.close() l1=linked_list() l2=linked_list() f=open("in1.txt","r") temp=[] temp1=[] temp2=[] m,n=f.readline().split(",") m=int(m) temp=f.readline().split(",") temp1=f.readline().split(",") temp2=f.readline().split(",") b=1 count=0 count1=0 ##push count2=0 ##pop start=time.clock() for i in temp: l1.push(i) count1=count1+1 for i in temp1: for j in range (1,m-int(i)+2): a=l1.pop() count2=count2+1 l2.push(a) count1=count1+1 l1.push(b) for j in range (1,m-int(i)+2): a=l2.pop() count2=count2+1 l1.push(a) count1=count1+1 b=b+1 for i in temp2: for j in range (1,m-int(i)+2): a=l1.pop() count2=count2+1 l2.push(a) count1=count1+1 data=l2.pop() for j in range (1,m-int(i)+1): a=l2.pop() count2=count2+1 l1.push(a) count1=count1+1 l1.print_list() t1=time.clock()-start f1=open("out1.txt","a") f1.write("\n time taken="+str(t1)+"\ntotal no of element="+str(count)+"\ntotal no of push="+str(count1)+"\ntotal no of pop="+str(count2)) f1.close() f.close()