結果
問題 |
No.2339 Factorial Paths
|
ユーザー |
![]() |
提出日時 | 2023-06-02 23:13:04 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 175 ms / 2,000 ms |
コード長 | 1,100 bytes |
コンパイル時間 | 447 ms |
コンパイル使用メモリ | 82,096 KB |
実行使用メモリ | 100,736 KB |
最終ジャッジ日時 | 2024-12-28 22:04:58 |
合計ジャッジ時間 | 8,919 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
""" 4000 C 2000 通りが最大である 2N C N """ import sys from sys import stdin from collections import deque N = int(stdin.readline()) if N == 1: print (1,1) print (".") sys.exit() lis = [] q = deque([N]) while q: v = q.popleft() if v == 1: continue elif v == 2: lis.append( (2,2) ) else: a = v // 2 b = v - a lis.append( (a+1,b+1) ) q.append( a ) q.append( b ) s = 0 for a,b in lis: s += min(a,b) H = 1 W = 1 for a,b in lis: a,b = min(a,b),max(b,a) if H >= W: H += a-1 W += b-1 else: H += b-1 W += a-1 ans = [ ["#"] * W for i in range(H) ] H = 1 W = 1 for a,b in lis: a,b = min(a,b),max(b,a) if H >= W: for i in range(a): for j in range(b): ans[H-1+i][W-1+j] = "." H += a-1 W += b-1 else: for j in range(a): for i in range(b): ans[H-1+i][W-1+j] = "." H += b-1 W += a-1 print (H,W) for i in ans: print ("".join(i))