arundeepak

Snakes and Ladders

Mar 21st, 2016
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.17 KB | None | 0 0
  1. '__author__'=='deepak Singh Mehta(learning graph :))) '
  2. #for testcases refer to https://www.hackerrank.com/challenges/the-quickest-way-up
  3. if __name__=='__main__':
  4.   tests = int(input())
  5.   for _ in range(tests):
  6.     vis = [False for i in range(120)]
  7.     dist = [0 for i in range(120)]
  8.     graph = [[] for i in range(120)]
  9.    
  10.     ladder = int(input()) #No. of ladders you want to invoke
  11.     for _ in range(ladder):
  12.       x,y = map(int,input().split()) #from -> to
  13.       graph[x].append(y)
  14.       dist[x]-=1
  15.     snakes = int(input()) #No. of Snakes you want to invoke
  16.     for _ in range(snakes):
  17.       x,y = map(int,input().split())  #to -> from
  18.       graph[x].append(y)
  19.       dist[x]-=1
  20.     #print(graph)
  21.     for i in range(1,100):
  22.       if len(graph[i])==0:
  23.         for j in range(i+1,i+7):
  24.           graph[i].append(j)
  25.           if j>=100:
  26.             break
  27.     #print(graph)
  28.     que = []
  29.     que.append(1)
  30.     dist[1]=0
  31.     while len(que)!=0 and que[0]!=100:
  32.       k = que[0]
  33.       del que[0]
  34.       for i in graph[k]:
  35.         if not vis[i]:
  36.           vis[i]=True
  37.           que.append(i)
  38.           dist[i]+=1+dist[k]
  39.     print(-1 if not dist[100] else dist[100])
Add Comment
Please, Sign In to add comment