結果
問題 |
No.3183 Swap or Rotate
|
ユーザー |
![]() |
提出日時 | 2025-06-20 21:26:32 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 103 ms / 1,000 ms |
コード長 | 1,121 bytes |
コンパイル時間 | 3,311 ms |
コンパイル使用メモリ | 79,668 KB |
実行使用メモリ | 45,164 KB |
最終ジャッジ日時 | 2025-06-20 21:26:39 |
合計ジャッジ時間 | 6,366 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); String[] sa = br.readLine().split(" "); int[] p = new int[n]; for (int i = 0; i < n; i++) { p[i] = Integer.parseInt(sa[i]); } br.close(); StringBuilder sb = new StringBuilder(); while (true) { boolean flg = true; for (int i = 0; i < n; i++) { if (p[i] != i) { flg = false; } } if (flg) { break; } if (p[0] > p[1] && !(p[0] == n - 1 && p[1] == 0)) { sb.append('S'); int t = p[0]; p[0] = p[1]; p[1] = t; } flg = true; for (int i = 0; i < n; i++) { if (p[i] != i) { flg = false; } } if (flg) { break; } sb.append('R'); rotateL(p, 0, n - 1); } System.out.println(sb.toString()); } static void rotateL(int[] val, int beg, int end) { int tmp = val[beg]; for (int i = beg; i < end; i++) { val[i] = val[i + 1]; } val[end] = tmp; } }