#1257: 我也RE了= =RE(6)


B88000005 (喔~~!!XD)

學校 : 國立內壢高級中學
編號 : 4538
來源 : [118.167.234.168]
最後登入時間 :
2021-05-12 14:50:32
b075. A. 霍格華茲特快車 -- 2007 NPSC 國中組初賽 | From: [220.138.33.50] | 發表日期 : 2009-01-26 13:27

執行時發生錯誤 (SIGABRT)(6)!!
系統呼叫 abort 函式!!
可能的原因為取用了超過string長度的位置、指標錯誤或 overflow。

 

看不太懂什麼意思= =""

 

程式碼:

 

#include <iostream>
#include <string>

using namespace std;

int main()
{
    int k;
    cin>>k;
    while(k>0){
        k--;
        int n;
        string x,y,z,c;
        cin>>n>>x>>y;
        x.erase(x.find(":"),1);
        y.erase(y.find(":"),1);
        int X=atoi(x.c_str());
        int Y=atoi(y.c_str());
        while(cin>>z>>c){
            int A,B;
            c.erase(c.find(":"),1);
            int C=atoi(c.c_str());
            if(X%100-C%100<0){
                A=X-C-40;
            }
            else{
                A=X-C;
            }
            if(Y%100-C%100<0){
                B=Y-C-40;
            }
            else{
                B=Y-C;
            }
            cout<<(A-A%100)/100<<':';
            if(A%100<10){
                cout<<'0';
            }
            cout<<A%100<<' '<<(B-B%100)/100<<':';
            if(A%100<10){
                cout<<'0';
            }
            cout<<B%100<<"\n";
        }
    }
    return 0;
}

(希望各位看的懂= ="")

 
ZeroJudge Forum