rendered paste bodyfrom sys import stdin def besok(nabomatrise, node, besokt): besokt[node] = True for nabonode in xrange(0, len(nabomatrise)): if nabomatrise[node][nabonode] == True and besokt[nabonode] == False: besok(nabomatrise, nabonode, besokt)def main(): n = int(stdin.readline()) nabomatrise = [None] * n # rader for i in range(0, n): nabomatrise[i] = [False] * n # kolonner linje = stdin.readline() for j in xrange(0, n): nabomatrise[i][j] = (linje[j] == '1') for linje in stdin: startnode = int(linje) besokt = [False] * n noder = 0 kanter = 0 besok(nabomatrise, startnode, besokt) for node in range(0, n): if besokt[node] == False: noder += 1 for nabonode in xrange(0, n): if nabomatrise[node][nabonode] == True and besokt[nabonode] == False: kanter += 1 if noder == 0: print '0.000' else: print "%.3f" % ((float(kanter) / float(noder**2)) + 1E-12)main()