結果

問題 No.438 Cwwプログラミング入門
ユーザー sasa8uyauyasasa8uyauya
提出日時 2024-10-04 12:22:40
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 1,549 bytes
コンパイル時間 171 ms
コンパイル使用メモリ 81,664 KB
実行使用メモリ 65,152 KB
最終ジャッジ日時 2024-10-04 12:22:50
合計ジャッジ時間 7,962 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 97 RE * 1
権限があれば一括ダウンロードができます

ソースコード

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 "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 "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 "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 "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 "NO"
    s="c"*ca+"w"*cb+"C"*(cb-1)+"W"*ca
    return s
  if (fa,fb)==(0,0):
    return "NO"

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

if C==0:
  print("ccW")
  exit()
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()

for fa in [0,1]:
  for fb in [0,1]:
    s=solve(A,B,C,fa,fb)
    if s!="NO":
      print(s)
      exit()

print("NO")
0