#!/usr/bin/env python3 import sys sys.setrecursionlimit(10000) tab={(1,1):(0,-1),(2,2):(0,-1),(3,3):(0,-1),(1,2):(3,1),(2,1):(3,-1),(2,3):(1,1),(3,2):(1,-1),(3,1):(2,1),(1,3):(2,-1)} def mul(a,b): if a[0]==0: return (b[0],a[1]*b[1]) if b[0]==0: return (a[0],a[1]*b[1]) k,s=tab[(a[0],b[0])] return (k,a[1]*b[1]*s) letters=[((1,1),2,1),((1,-1),-2,-1),((2,1),-1,2),((2,-1),1,-2)] inv=[1,0,3,2] n=12 from fractions import Fraction N=S=0 nonN=nonS=0 primN=primS=0 achN=achS=0 Eprim=Fraction(0) Eall=Fraction(0) def rec(w,q,x,y): global N,S,nonN,nonS,primN,primS,achN,achS,Eprim,Eall if len(w)==n: if w[0]==inv[w[-1]]: return if q!=(0,-1) or y%5: return e=(abs(x)+abs(y)+abs(-x-y))//2 N+=1;S+=e periods=[k for k in range(1,n+1) if all(w[i]==w[(i+k)%n] for i in range(n))] d=periods[0] if d