結果

問題 No.405 ローマ数字の腕時計
ユーザー minimamu21minimamu21
提出日時 2020-04-03 23:13:47
言語 C++14
(gcc 13.2.0 + boost 1.83.0)
結果
MLE  
実行時間 -
コード長 980 bytes
コンパイル時間 1,633 ms
コンパイル使用メモリ 165,300 KB
実行使用メモリ 814,608 KB
最終ジャッジ日時 2023-09-16 04:32:15
合計ジャッジ時間 5,774 ms
ジャッジサーバーID
(参考情報)
judge12 / judge13
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,376 KB
testcase_01 AC 2 ms
4,380 KB
testcase_02 AC 1 ms
4,380 KB
testcase_03 AC 2 ms
4,380 KB
testcase_04 MLE -
testcase_05 -- -
testcase_06 -- -
testcase_07 -- -
testcase_08 -- -
testcase_09 -- -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
testcase_15 -- -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
testcase_20 -- -
testcase_21 -- -
testcase_22 -- -
testcase_23 -- -
testcase_24 -- -
testcase_25 -- -
testcase_26 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#define rep(i,n) for (int i=0; i<(n); ++i)
using namespace std;
using ll=long long;
int main(){
    string s; int t;
    cin>>s>>t;
    int x=0;
    int n=s.length();
    if(s=="IX"){
        x=9;
    }
    else{
        rep(i,n){
            if(s[i]=='I'){
                x++;
            }
            else if(s[i]=='V'){
                x+=5;
            }
            else{
                x+=10;
            }
        }
    }
    x+=t;
    if(x<0){
        x=(x%12)+12;
    }
    if(x%12==0){
        cout<<"XII"<<endl;
    }
    else if(x%12==9){
        cout<<"IX"<<endl;
    }
    else{
        string ans;
        int xp=x%12;
        while(xp!=0){
            if(xp>=10){
                ans+='X';
                xp-=10;
            }
            if(xp>=5){
                ans+='V';
                xp-=5;
            }
            else{
                ans+='I';
                xp--;
            }
        }
        cout<<ans<<endl;
    }
}
0