■
D,Cを解きました。
D
def readints(): return map(int,raw_input().split()) def main(): global n,m n,m=readints() data=[raw_input().split() for j in xrange(n)] alldata=[d for d2 in reps(data,"J1") for d in reps(d2,"J2")] #print alldata for d in alldata: allplace=[(i,j) for i in xrange(n) for j in xrange(m) if okp(i,j,d)] for x1,y1 in allplace: for x2,y2 in allplace: if abs(x1-x2)<3 and abs(y1-y2)<3:continue print"Solution exists." joker_mes=[] for jk in ["J1","J2"]: for i in xrange(n): for j in xrange(m): if data[i][j]==jk: joker_mes.append((jk,d[i][j])) if len(joker_mes)==0: print"There are no jokers." if len(joker_mes)==1: jk,c=joker_mes[0] print "Replace %s with %s."%(jk,c) if len(joker_mes)==2: (j1,c1),(j2,c2)=joker_mes print "Replace J1 with %s and J2 with %s."%(c1,c2) mes((x1,y1),0) mes((x2,y2),1) return print "No solution." pass def ins(x,y): return 0<x<n-1 and 0<y<m-1 def reps(data,s): rem = allcards-set(data[i][j]for i in xrange(n) for j in xrange(m)) ret=[] for i in xrange(n): for j in xrange(m): if data[i][j]==s: for card in rem: ndata=deepcopy(data) ndata[i][j]=card ret.append(ndata) return ret return [data] def mes(p,n): th=["first","second"][n] print"Put the %s square to (%s, %s)."%(th,p[0],p[1],) def okp(x,y,dd): if not ins(x,y):return False adj=[(x+dx,y+dy) for dx in [-1,0,1] for dy in [-1,0,1]] return all(dd[x][y][1] == dd[nx][ny][1] for nx,ny in adj) or len(set(dd[nx][ny][0] for nx,ny in adj)) ==9 from copy import deepcopy ranks="2 3 4 5 6 7 8 9 T J Q K A".split() suits="C D H S".split() allcards=set([ra+su for ra in ranks for su in suits]) if __name__=='__main__': main()
C
def readints(): return map(int,raw_input().split()) def main(): n=input() x=readints() for k in xrange(3,n+1): if n%k:continue m=n/k for i in xrange(m): if all(x[i+t*m] for t in xrange(k)): print "YES" return print "NO" pass