AtCoder Beginner Contest 145 過去問 (A~C)
参照
A問題
問題なく
print(int(input())**2)
B問題
問題なく
n=int(input()) s=input() if n%2!=0: print('No') elif s[:int(n/2)]==s[int(n/2):]: print('Yes') else: print('No')
C問題
与えられたN個の座標に対して、
N!通りの経路の組み合わせを算出し、
N!の経路においての平均値を求めます。
itertoolsのpermutationsで配列内のN!通りの組み合わせを列挙してくれます。
permutations = 順列を意味します。
note.nkmk.me
import itertools import math n = int(input()) lis = [j for j in range(n)] points = [] permutations_lis = itertools.permutations(lis) for i in range(n): x,y=map(int,input().split()) points.append([x,y]) def distance(forw, back): return math.sqrt((points[forw][0]-points[back][0])**2+(points[forw][1]-points[back][1])**2) sum_,k = 0,0 for one_case in permutations_lis: k+=1 for j in range(len(one_case)-1): dis = distance(one_case[j],one_case[j+1]) sum_+=dis print(sum_/k)