結果

問題 No.652 E869120 and TimeZone
ユーザー tonegawa
提出日時 2020-08-16 06:40:47
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 1,000 ms
コード長 1,176 bytes
コンパイル時間 2,307 ms
コンパイル使用メモリ 194,172 KB
最終ジャッジ日時 2025-01-13 01:55:25
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 5
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

#include "bits/stdc++.h"

using namespace std;
typedef long long int ll;
typedef pair<ll, ll > pi;  
typedef pair<pair<ll, ll >, ll > pii;  
vector<ll > vec;
vector<ll > vec2;
ll MOD = 1000000007;
ll INF = 1145141919454519;
//謎の誤差が発生したのでstod使うのやめた
int main() {

    ll a, b;
    cin >> a >> b;
    ll minute = a * 60 + b;
    //cout << minute << endl;

    string s;
    cin >> s;

    //double t = stod(s.substr(3,s.length()-3));
    //double sabun = (t - 9) * 60;

    string st = s.substr(3,s.length()-3);

    ll len = st.length();
    ll tt = 0;
    if(len == 2){
        tt =  (st[1]-'0') * 60;
    }else if(len == 3){
        tt = ((st[1]-'0') * 10 + (st[2]-'0')) * 60;
    }else if(len == 4){
        tt = (st[1]-'0') * 60 + (st[3]-'0') * 6;
    }else{
        tt = ((st[1]-'0')* 10 + (st[2]-'0')) * 60 + (st[4]-'0') * 6;
    }
     
    if(st[0] == '-') tt *= -1;

    minute += tt - 9 * 60;

    if(minute < 0){
        minute += 24 * 60;
    }
    if(minute >= 24 * 60){
        minute -= 24 * 60;
    }   

    cout << setw(2) << setfill('0') << minute / 60 << ":" ;
    cout << setw(2) << setfill('0') << minute % 60 << endl;


}
0