結果
問題 |
No.438 Cwwプログラミング入門
|
ユーザー |
![]() |
提出日時 | 2020-04-24 17:25:16 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 1,218 bytes |
コンパイル時間 | 209 ms |
コンパイル使用メモリ | 13,056 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-10-15 02:03:50 |
合計ジャッジ時間 | 6,065 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 98 |
ソースコード
import sys sys.setrecursionlimit(10 ** 5) int1 = lambda x: int(x) - 1 p2D = lambda x: print(*x, sep="\n") def II(): return int(sys.stdin.readline()) def MI(): return map(int, sys.stdin.readline().split()) def LI(): return list(map(int, sys.stdin.readline().split())) def LLI(rows_number): return [LI() for _ in range(rows_number)] def SI(): return sys.stdin.readline()[:-1] def extgcd(a,b,c): if b==0:return c//a,0,abs(a) x,y,g=extgcd(b,a%b,c) return y,x-y*(a//b),g def main(): mx=10000 x,y,z=MI() if z==0: print("ccW") exit() if mx//2*max(x,y)<z: print("NO") exit() cx,cy,g=extgcd(x,y,z) x,y=x//g,y//g if z%g: print("NO") exit() if x and y:cxy=[(cx+k*y,cy-k*x) for k in [-cx//y,-cx//y+1,cy//x,cy//x+1]] elif x:cxy=[(cx+k*y,cy-k*x) for k in [cy//x,(cy+x-1)//x]] elif y:cxy=[(cx+k*y,cy-k*x) for k in [-cx//y,-(cx+y-1)//y]] cx,cy=min(cxy,key=lambda p:abs(p[0])+abs(p[1])) if (abs(cx)+abs(cy))*2-1>mx: print("NO") exit() if cx>0:ans="w"*abs(cy)+"c"*cx+"C"*(cx-1)+("C" if cy>0 else "W")*abs(cy) else:ans="c"*abs(cx)+"w"*cy+"C"*(cy-1)+("C" if cx>0 else "W")*abs(cx) print(ans) main()