結果
問題 | No.2716 Falcon Method |
ユーザー |
![]() |
提出日時 | 2024-04-05 23:23:23 |
言語 | Java (openjdk 23) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,740 bytes |
コンパイル時間 | 2,102 ms |
コンパイル使用メモリ | 77,476 KB |
実行使用メモリ | 167,548 KB |
最終ジャッジ日時 | 2024-10-01 03:06:45 |
合計ジャッジ時間 | 19,817 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 20 RE * 8 |
ソースコード
import java.io.*;public class Main {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String[] sa = br.readLine().split(" ");int n = Integer.parseInt(sa[0]);int q = Integer.parseInt(sa[1]);char[] s = br.readLine().toCharArray();int[] h = new int[q];int[] w = new int[q];int[] p = new int[q];for (int i = 0; i < q; i++) {sa = br.readLine().split(" ");h[i] = Integer.parseInt(sa[0]);w[i] = Integer.parseInt(sa[1]);p[i] = Integer.parseInt(sa[2]);}br.close();long[][] dpd = new long[31][n];long[][] dpr = new long[31][n];long d = 1000000000000000000L;long r = 1000000000000000000L;for (int i = 0; i < n; i++) {if (s[i] == 'D') {d = n + i;break;}}for (int i = 0; i < n; i++) {if (s[i] == 'R') {r = n + i;break;}}for (int i = n - 1; i >= 0; i--) {dpd[0][i] = d - i;dpr[0][i] = r - i;if (s[i] == 'D') {d = i;} else {r = i;}}for (int i = 0; i < 30; i++) {for (int j = 0; j < n; j++) {dpd[i + 1][j] = dpd[i][j] + dpd[i][(int) ((j + dpd[i][j]) % n)];dpr[i + 1][j] = dpr[i][j] + dpr[i][(int) ((j + dpr[i][j]) % n)];}}PrintWriter pw = new PrintWriter(System.out);for (int i = 0; i < q; i++) {if (s[p[i]] == 'D') {h[i]--;} else {w[i]--;}d = p[i];for (int j = 0; j < 31; j++) {if ((h[i] >> j & 1) == 1) {d += dpd[j][(int) (d % n)];}}r = p[i];for (int j = 0; j < 31; j++) {if ((w[i] >> j & 1) == 1) {r += dpr[j][(int) (r % n)];}}long ans = Math.min(d + 1, r + 1) % n;pw.println(ans);}pw.flush();}}