結果
問題 | No.2947 Sing a Song |
ユーザー |
![]() |
提出日時 | 2025-02-03 23:01:38 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 121 ms / 2,000 ms |
コード長 | 660 bytes |
コンパイル時間 | 238 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 79,616 KB |
最終ジャッジ日時 | 2025-02-03 23:01:45 |
合計ジャッジ時間 | 5,819 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 |
ソースコード
import math N = int(input()) S, T = input().split() s, t = len(S), len(T) A = list(map(int, input().split())) def abm(a, b, m): d = math.gcd(a, b, m) a //= d b //= d m //= d #if math.gcd(a, m) != 1: # res = 'No Answer' #else: x = pow(a, -1, m)*b x %= m res = x return res # s, t は定数 def solve(a:int): # s*x + t*y == a を満たし、 # かつ x が最大になるような解を求める # mod s を取ると # t*y ≡ a (mod s) を解く y = abm(t, a, s) x = (a - t*y)//s return x, y for a in A: x, y = solve(a) #print(x, y) memo = [S]*x + [T]*y print(*memo)