結果

問題 No.405 ローマ数字の腕時計
コンテスト
ユーザー sk3388607083
提出日時 2018-06-24 11:13:43
言語 C++11
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 1 ms / 2,000 ms
コード長 736 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 131 ms
コンパイル使用メモリ 40,448 KB
実行使用メモリ 6,144 KB
最終ジャッジ日時 2026-03-28 09:03:28
合計ジャッジ時間 832 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 27
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include<stdio.h>
#include<string.h>

int main(void){
  int i;
  int T;
  char S1[4];
  scanf("%s %d", S1, &T);
  if(strcmp(S1, "IX") == 0) T += 9;
  else{
    for(i = 0; S1[i] != '\0'; i++){
      if(S1[i] == 'I') T += 1;
      else if(S1[i] == 'V') T += 5;
      else if(S1[i] == 'X') T += 10;
    }
  }
  if(T >= 0) T = T % 12;
  else T = 12 - (-T % 12);
  if(T == 0) printf("XII\n");
  else if(T == 9) printf("IX\n");
  else{
    i = 0;
    while(1){
      if(T == 0) break;
      else if(T >= 10){
	S1[i] = 'X';
	T = T - 10;
	i++;
      }
      else if(T >= 5){
	S1[i] = 'V';
	T = T - 5;
	i++;
      }
      else if(T >= 1){
	S1[i] = 'I';
	T = T - 1;
	i++;
      }
    }
    S1[i] = '\0';
    printf("%s\n", S1);
  }
  return 0;
}
0