結果
| 問題 | 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 | 
ソースコード
#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;
}
            
            
            
        