Submission #3543861
Source Code Expand
import numpy as np
H,W,K=map(int,input().split())
A=np.zeros((W,W))
mod=10**9+7
for i in range(1<<(W-1)):
flag=True
s=0
for j in range(W-1):
if i&(1<<j) and s==0:
s=1
elif i&(1<<j) and s==1:
flag=False
break
else:
s=0
if flag:
#print(bin(i))
L=[int(i) for i in range(W)]
for j in range(W-1):
if i&(1<<j):
L[j]=j+1
L[j+1]=j
for j in range(W):
A[j][L[j]]+=1
x=np.zeros(W)
x[0]=1
for i in range(H):
x=np.dot(A,x)
x%=mod
print(int(x[K-1]))
Submission Info
| Submission Time | |
|---|---|
| Task | D - Number of Amidakuji |
| User | okumura |
| Language | Python (3.4.3) |
| Score | 400 |
| Code Size | 652 Byte |
| Status | AC |
| Exec Time | 156 ms |
| Memory | 14452 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt, sample_06.txt |
| All | in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt, sample_06.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| in01.txt | AC | 156 ms | 12784 KiB |
| in02.txt | AC | 151 ms | 12416 KiB |
| in03.txt | AC | 153 ms | 14448 KiB |
| in04.txt | AC | 152 ms | 12416 KiB |
| in05.txt | AC | 151 ms | 14452 KiB |
| in06.txt | AC | 150 ms | 14448 KiB |
| in07.txt | AC | 148 ms | 12416 KiB |
| in08.txt | AC | 151 ms | 12292 KiB |
| in09.txt | AC | 147 ms | 12292 KiB |
| in10.txt | AC | 151 ms | 14448 KiB |
| sample_01.txt | AC | 148 ms | 12416 KiB |
| sample_02.txt | AC | 147 ms | 12416 KiB |
| sample_03.txt | AC | 147 ms | 12416 KiB |
| sample_04.txt | AC | 146 ms | 12292 KiB |
| sample_05.txt | AC | 146 ms | 12292 KiB |
| sample_06.txt | AC | 150 ms | 14448 KiB |