結果

問題 No.438 Cwwプログラミング入門
ユーザー sasa8uyauya
提出日時 2024-10-04 12:01:51
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,619 bytes
コンパイル時間 138 ms
コンパイル使用メモリ 81,912 KB
実行使用メモリ 66,704 KB
最終ジャッジ日時 2024-10-04 12:02:05
合計ジャッジ時間 10,938 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 62 WA * 34 RE * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

def extgcd(a,b):
  if b==0:
    return 1,0
  x1,y1=extgcd(b,a%b)
  x=y1
  y=x1-(a//b)*y1
  return x,y

def solve(A,B,C,fa,fb):
  x,y=extgcd(A,B)
  g=A*x+B*y
  if C%g!=0:
    return list("NO")
  a=A//g
  b=B//g
  c=C//g
  if (fa,fb)==(1,1):
    l=(-c*y+a-1)//a if -c*y>=0 else -((c*y)//a)
    r=(c*x)//b if c*x>=0 else -((-c*x+b-1)//b)
    if l>r:
      return list("NO")
    if a-b>0:
      k=l
    else:
      k=r
    ca=c*x-k*b
    cb=c*y+k*a
    if ca+cb+ca+cb-1>L:
      return list("NO")
    s=["c"]*ca+["w"]*cb+["C"]*(ca+cb-1)
    return s
  if (fa,fb)==(1,0):
    la=(-c*x+b-1)//b if -c*x>=0 else -((c*x)//b)
    lb=(-c*y+a-1)//a if -c*y>=0 else -((c*y)//a)
    k=max(la,lb)
    ca=c*x+k*b
    cb=c*y+k*a
    if ca+cb+ca+cb-1>L:
      return list("NO")
    s=["w"]*cb+["c"]*ca+["C"]*(ca-1)+["W"]*cb
    return s
  if (fa,fb)==(0,1):
    la=(-c*x+b-1)//b if -c*x>=0 else -((c*x)//b)
    lb=(-c*y+a-1)//a if -c*y>=0 else -((c*y)//a)
    k=max(la,lb)
    ca=c*x+k*b
    cb=c*y+k*a
    if ca+cb+ca+cb-1>L:
      return list("NO")
    s=["c"]*ca+["w"]*cb+["C"]*(cb-1)+["W"]*ca
    return s
  if (fa,fb)==(0,0):
    return list("NO")

A,B,C=map(int,input().split())
L=10000

if A==0:
  if C%B==0:
    c=C//B
    if c+c-1<=L:
      print("w"*c+"C"*(c-1))
    else:
      print("NO")
  else:
    print("NO")
  exit()
if B==0:
  if C%A==0:
    c=C//A
    if c+c-1<=L:
      print("c"*c+"C"*(c-1))
    else:
      print("NO")
  else:
    print("NO")
  exit()

s=list("NO")
for fa in [0,1]:
  for fb in [0,1]:
    ns=solve(A,B,C,fa,fb)
    if s==list("NO"):
      s=ns
    elif len(s)>len(ns):
      s=ns

print("".join(s))
0