#4991: 為什麼會逾時


CSE911515 (蘇煒翔你好過分)


#include<iostream>
using namespace std;
int main()
{
    int k,l,a,b;
    char N[20],E[5],L[5],H[5];
    while(cin>>k)
    {
        while(k--)
        {
            cin>>l>>E>>L;
            while(l--)
            {
                int a1=0,a2=0,a3=0,a4=0,b1=0,b2=0,b3=0,b4=0;
                cin>>N>>H;
                a4=E[4]-H[4];
                if(a4<0)
                {
                    a4+=10;
                    a3=-1;
                }
                a3=E[3]-H[3]+a3;
                if(a3<0)
                {
                    a3+=6;
                    a2=-1;
                }
                a2=E[1]-H[1]+a2;
                if(a2<0)
                {
                    a2+=10;
                    a1=-1;
                }
                a1=E[0]-H[0]+a1;

                b4=L[4]-H[4];
                if(b4<0)
                {
                    b4+=10;
                    b3=-1;
                }
                b3=L[3]-H[3]+b3;
                if(b3<0)
                {
                    b3+=6;
                    b2=-1;
                }
                b2=L[1]-H[1]+b2;
                if(b2<0)
                {
                    b2+=10;
                    b1=-1;
                }
                b1=L[0]-H[0]+b1;
                cout<<a1<<a2<<":"<<a3<<a4<<" "<<b1<<b2<<":"<<b3<<b4<<endl;
            }
        }
    }
    return 0;
}
是他跑太久還是哪裡有問題嗎? 

#6769: Re:為什麼會逾時


austin8831 (noname)


#include
using namespace std;
int main()
{
    int k,l,a,b;
    char N[20],E[5],L[5],H[5];
    while(cin>>k)
    {
        while(k--)
        {
            cin>>l>>E>>L;
            while(l--)
            {
                int a1=0,a2=0,a3=0,a4=0,b1=0,b2=0,b3=0,b4=0;
                cin>>N>>H;
                a4=E[4]-H[4];
                if(a4<0)
                {
                    a4+=10;
                    a3=-1;
                }
                a3=E[3]-H[3]+a3;
                if(a3<0)
                {
                    a3+=6;
                    a2=-1;
                }
                a2=E[1]-H[1]+a2;
                if(a2<0)
                {
                    a2+=10;
                    a1=-1;
                }
                a1=E[0]-H[0]+a1;

                b4=L[4]-H[4];
                if(b4<0)
                {
                    b4+=10;
                    b3=-1;
                }
                b3=L[3]-H[3]+b3;
                if(b3<0)
                {
                    b3+=6;
                    b2=-1;
                }
                b2=L[1]-H[1]+b2;
                if(b2<0)
                {
                    b2+=10;
                    b1=-1;
                }
                b1=L[0]-H[0]+b1;
                cout<
            }
        }
    }
    return 0;
}
是他跑太久還是哪裡有問題嗎? 


這是我的code你可以參考看看:
#include <iostream>

using namespace std;

int main()
{
int t,n,set1[2],set2[2];
char x,name[100];
int time[2],ans1[2],ans2[2];

cin >> t;
while(t--)
{
cin >> n >> set1[0] >> x >> set1[1] >> set2[0] >> x >> set2[1];
while(n--)
{
ans1[0] = set1[0];
ans1[1] = set1[1];
ans2[0] = set2[0];
ans2[1] = set2[1];
cin >> name >> time[0] >> x >> time[1];
if( time[1] > ans1[1]  )
{
ans1[0]--;
ans1[1] += 60;
ans1[1] -= time[1];
if( ans1[1] >= 60 )
{
ans1[1] -= 60;
ans1[0] += 1;
}
ans1[0] -= time[0];
}
else
{
ans1[0] -= time[0];
ans1[1] -= time[1];
}
if( time[1] > ans2[1]  )
{
ans2[0]--;
ans2[1] += 60;
ans2[1] -= time[1];
if( ans2[1] >= 60 )
{
ans2[1] -= 60;
ans2[0] += 1;
}
ans2[0] -= time[0];
}
else
{
ans2[0] -= time[0];
ans2[1] -= time[1];
}
cout << ((ans1[0] / 10 == 0) ? "0":"" ) << ans1[0] << ":" << ((ans1[1] / 10 == 0) ? "0":"") << ans1[1] << " " << ((ans2[0] / 10 == 0) ? "0":"") << ans2[0] << ":" << ((ans2[1] / 10 == 0) ? "0":"") << ans2[1] << endl;
}
}