#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;
}
}
}