結果
| 問題 | No.3733 My First Grid |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-19 14:55:21 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
WA
不安定
|
| 実行時間 | - |
| コード長 | 3,081 bytes |
| 記録 | |
| コンパイル時間 | 66 ms |
| コンパイル使用メモリ | 82,668 KB |
| 実行使用メモリ | 96,796 KB |
| 最終ジャッジ日時 | 2026-09-19 14:55:28 |
| 合計ジャッジ時間 | 5,897 ms |
|
ジャッジサーバーID (参考情報) |
judge4_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 50 WA * 7 |
ソースコード
from __future__ import annotations
import sys
sys.setrecursionlimit(2*10**7)
#↓codon===============================
import string
Alp_low=list(string.ascii_lowercase)
Alp_up=list(string.ascii_uppercase)
Digit="0123456789"
dij=[[0,1],[1,0],[0,-1],[-1,0]]
def nin():
return list(map(int,input().split()))
def deq(x):
return [i-1 for i in x]
mod=998244353
_factorial=[1]
def factorial(n):
while len(_factorial)<=n:
_factorial.append((_factorial[-1]*len(_factorial))%mod)
return _factorial[n]
_inv_factorial=[1]
def inv_factorial(n):
while len(_inv_factorial)<=n:
_inv_factorial.append((_inv_factorial[-1]*pow(len(_inv_factorial),mod-2,mod))%mod)
return _inv_factorial[n]
def binom(n,r):
if r>=mod:
raise ValueError("r is too big")
if n<0:
return 0
if r>n:
return 0
if r<0:
return 0
ans=((factorial(n)*inv_factorial(r))%mod*inv_factorial(n-r))%mod
return ans
def main():
h,w,k=nin()
if k==0:
for _ in range(h):
print("#"*w)
return
def calc1(h,w,k):
if not 2<=k<=h+w-2:
return False,[[]]
if k<=w:
ans=[[] for _ in range(h)]
for i in range(h):
if i==0:
for j in range(k-1):
ans[i].append(".")
for j in range(w-(k-1)):
ans[i].append("#")
continue
for j in range(w):
ans[i].append("#")
return True,ans
else:
ans=[[] for _ in range(h)]
for i in range(h):
if i==0:
for j in range(w):
ans[i].append(".")
continue
for j in range(w):
if j==0 and i<=k-w+1:
ans[i].append(".")
else:
ans[i].append("#")
return True,ans
def calc2(h,w,k):
if k<h:
return False,[[]]
ans=[["#"]*w for _ in range(h)]
for i in range(h):
ans[i][0]="."
rem=k-h
for i in range(0,h,2)[::-1]:
for j in range(1,w-1):
if i in [0,h-1]:
x=1
else:
x=2
if rem-x>=0:
ans[i][j]="."
rem-=x
if rem!=0:
return False,[[]]
else:
return True,ans
def calc3(h,w,k):
fl,ans=calc2(w,h,k)
if fl==False:
return fl,ans
new=[[ans[j][i] for j in range(w)] for i in range(h)]
return fl,new
fl,ans=calc1(h,w,k)
if fl:
for i in ans:
print("".join(i))
return
fl,ans=calc3(h,w,k)
if fl:
for i in ans:
print("".join(i))
return
fl,ans=calc2(h,w,k)
if fl:
for i in ans:
print("".join(i))
return
print(-1)
if __name__=="__main__":
main()