求调!!! 半红半绿
#include<bits/stdc++.h>
using namespace std;
//#define int long long
struct node
{
string s;
int sh,sm,eh,em;
}a[2005];
struct node1
{
int s,e;
}b[2005],c[2005];
bool cmp(node1 x,node1 y)
{
return x.s < y.s;
}
int main()
{
int n;
cin>>n;
bool f1 = 0,f2 = 0;
int cnt1 = 1,cnt2 = 1;
int ans = 2000000000;
for(int i = 1;i <= n;i ++)
{
cin>>a[i].s;
scanf("%d:%d--%d:%d",&a[i].sh,&a[i].sm,&a[i].eh,&a[i].em);
int st = a[i].sh*60+a[i].sm;
if(a[i].sh > a[i].eh) a[i].eh += 24;
else if(a[i].sh == a[i].eh && a[i].sm > a[i].em) a[i].eh += 24;
int en = a[i].eh*60+a[i].em;
if(a[i].s == "Zagreb-Graz")
{
b[cnt1].s = st;
b[cnt1].e = en;
f1 = 1;
cnt1++;
}
else
{
c[cnt2].s = st;
c[cnt2].e = en;
f2 = 1;
cnt2++;
}
}
if(f1 == 0||f2 == 0)
{
cout<<"NEMOGUCE";
return 0;
}
//sort(b+1,b+cnt1,cmp);
//sort(c+1,c+cnt2,cmp);
for(int i = 1;i < cnt1;i ++)
{
for(int j = 1;j < cnt2;j++)
{
//cout<<c[j].e-b[i].s<<endl;
if(b[i].e >= c[j].s) ans = min(ans,c[j].e+1440-b[i].s+1);
else ans = min(ans,c[j].e-b[i].s+1) ;
}
}
//ans++;
int ansm = ans%60;
ans-=ansm;
int ansh = ans/60;
if(ansm < 10) cout<<ansh<<":0"<<ansm;
else cout<<ansh<<":"<<ansm;
return 0;
}