結果
| 問題 | No.405 ローマ数字の腕時計 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-12-06 15:31:10 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,089 bytes |
| 記録 | |
| コンパイル時間 | 2,277 ms |
| コンパイル使用メモリ | 79,792 KB |
| 実行使用メモリ | 43,840 KB |
| 最終ジャッジ日時 | 2025-12-06 15:31:16 |
| 合計ジャッジ時間 | 4,768 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 21 WA * 6 |
ソースコード
import java.io.*;
class Process {
private String S;
private int T;
Process(String S, int T) {
this.S = S;
this.T = T;
}
private int toNumber(String s) {
int result = 0;
for(int i = 0; i < s.length(); i++) {
switch(s.charAt(i)) {
case 'I':
result++;
break;
case 'V':
result += 5;
break;
case 'X':
result += 10;
break;
}
}
return result;
}
private String toRomanNumber(int n) {
if(n == 0) {
return "XII";
}
if(n == 9) {
return "IX";
}
var result = new StringBuffer("");
while(n > 0) {
if(n >= 10) {
result.append("X");
n -= 10;
} else if(n >= 5) {
result.append("V");
n -= 5;
} else {
result.append("I");
n--;
}
}
return result.toString();
}
String getResult() {
// T を 0 以上にする
if(T < 0) {
while(T < 0) {
T += 12;
}
}
// 短針の位置
int shortHandPosition = toNumber(S) % 12;
return toRomanNumber((shortHandPosition + T) % 12);
}
}
public class Main {
public static void main(String[] args) throws IOException {
var bufferedReader = new BufferedReader(new InputStreamReader(System.in));
var printWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
// 入力
String[] input = bufferedReader.readLine().trim().split("[ ]+");
String S = input[0];
int T = Integer.parseInt(input[1]);
// 処理および出力
printWriter.println((new Process(S, T)).getResult());
bufferedReader.close();
printWriter.close();
}
}