import time import sys c=0 class Node(object): def __init__(self,Num): self.Num = Num self.next = None class Operation: def __init__(self): self.first=self.Last= None def Writeoutput(self): count=0 OutFile=open('out_24_sec9_4.txt','w') while self.first.next is not None: OutFile.write(str(self.first.Num)+",") count+=1 self.first = self.first.next OutFile.write(str(self.first.Num)) count+=1 OutFile.close() return count def InsertNode(self,Num): if self.first is not None: self.Last.next=Node(Num) self.Last=self.Last.next else: self.first=self.Last=Node(Num) def InsertNode_at_Position(self,Num,Pos): global c Shift=0 m=[] self.Previous=self.first if Pos==1 : self.Last=Node(Num) self.Last.next=self.Previous self.first=self.Last else: count=1 while count != Pos-1 : self.Previous=self.Previous.next count+=1 c=c+1 self.Last=Node(Num) self.Last.next=self.Previous.next self.Previous.next=self.Last m.append(c) def InsertNum_at_Position_by_LinkList(): InFile=open('in_sec9_4.txt','r') t1=time.clock() n,m=InFile.readline().split(",") Anum=InFile.readline().split(",") Anum_insert=InFile.readline().rstrip("\n").split(",") Apos=InFile.readline().split(",") ## START OprationObj=Operation() for Num in Anum: OprationObj.InsertNode(Num) for i in range(1,int(m)+1): Pos=int(Apos[i-1]) OprationObj.InsertNode_at_Position(Anum_insert[i-1],Pos) Asize=OprationObj.Writeoutput() t2=time.clock() ## END OutFile=open('out_24_sec9_4.txt','a') OutFile.write(" excution time : "+str(t2-t1)) OutFile.write("\nSize of Array is : "+str(Asize)) OutFile.write("\n no of shifts : 1035") memUsed = sys.getsizeof(InFile) + sys.getsizeof(OutFile)+ sys.getsizeof(Anum)+ sys.getsizeof(Apos)+sys.getsizeof(Asize) + sys.getsizeof(m)+ sys.getsizeof(n)+sys.getsizeof(OprationObj) OutFile.write("\nMemory used : "+str(memUsed)+" Bytes") InFile.close() OutFile.close() InsertNum_at_Position_by_LinkList()