結果
問題 |
No.2716 Falcon Method
|
ユーザー |
|
提出日時 | 2024-02-03 19:00:51 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 434 ms / 2,000 ms |
コード長 | 705 bytes |
コンパイル時間 | 411 ms |
コンパイル使用メモリ | 82,172 KB |
実行使用メモリ | 80,128 KB |
最終ジャッジ日時 | 2024-09-28 10:58:02 |
合計ジャッジ時間 | 9,439 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 28 |
ソースコード
n, q = map(int, input().split()) s = input() d = [0] * (n + 1) r = [0] * (n + 1) for i in range(n): d[i + 1] = d[i] + (1 if s[i] == 'D' else 0) r[i + 1] = r[i] + (1 if s[i] == 'R' else 0) for _ in range(q): h, w, p = map(int, input().split()) ok = h + w ng = 0 while ok - ng > 1: mid = (ok + ng) // 2 d_cnt = 0 d_cnt += d[n] * ((p + mid) // n) + d[(p + mid) % n] d_cnt -= d[n] * (p // n) + d[p % n] r_cnt = 0 r_cnt += r[n] * ((p + mid) // n) + r[(p + mid) % n] r_cnt -= r[n] * (p // n) + r[p % n] if d_cnt >= h or r_cnt >= w: ok = mid else: ng = mid print((p + ok) % n)