#include <cstdio>
using namespace std;
class time
{
public:
int minutes;
time(int h, int min) : minutes(0)
{
minutes += h * 60 * 11; //to remove non int numbers such as 12/11 I multiply them by 11 and I'am storing everything in minutes
minutes += min * 11;
}
time(time a, time b)
{
minutes = b.minutes - a.minutes;
}
bool operator >= (time obj)
{
if (this->minutes >= obj.minutes) return true;
return false;
}
void add(int a)
{
minutes += a;
}
void showTime() //
{
int hours = minutes/60/11;
int minits = (minutes - hours*60*11) / 11;
printf("%i:%i\n", hours,minits);
}
};
int solve(time t1, time t2) //t2 is the end time
{
time zero(0, 0);
const int interval = 12 * 60; //not 12/11 becouse I multiply everything by 11
while (t1 >= zero) zero.add(interval);
int passCount = 0;
while (t2 >= zero)
{
passCount++;
zero.add(interval);
}
return passCount;
}
void abc() // this function is just to see if everything is working. Passing times are rounded
{
time zero(0, 0);
time end(24,00);
const int interval = 12 * 60;
do
{
zero.showTime();
zero.add(interval);
}while(end >= zero);
}
int main()
{
//abc();
unsigned long long n;
scanf("%llu", &n);
while (n--)
{
int a, b;
scanf("%i:%i", &a, &b);
time time1(a, b);
scanf("%i:%i", &a, &b);
time time2(a, b);
printf("%i", solve(time1, time2));
if(n>0) printf(("\n"));
}
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIHRpbWUKewpwdWJsaWM6CglpbnQgbWludXRlczsKCXRpbWUoaW50IGgsIGludCBtaW4pIDogbWludXRlcygwKQoJewoJCW1pbnV0ZXMgKz0gaCAqIDYwICogMTE7IC8vdG8gcmVtb3ZlIG5vbiBpbnQgbnVtYmVycyBzdWNoIGFzIDEyLzExIEkgbXVsdGlwbHkgdGhlbSBieSAxMSBhbmQgSSdhbSBzdG9yaW5nIGV2ZXJ5dGhpbmcgaW4gbWludXRlcwoJCW1pbnV0ZXMgKz0gbWluICogMTE7Cgl9CgoJdGltZSh0aW1lIGEsIHRpbWUgYikKCXsKCQltaW51dGVzID0gYi5taW51dGVzIC0gYS5taW51dGVzOwoJfQoKCWJvb2wgb3BlcmF0b3IgPj0gKHRpbWUgb2JqKQoJewoJCWlmICh0aGlzLT5taW51dGVzID49IG9iai5taW51dGVzKSByZXR1cm4gdHJ1ZTsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJdm9pZCBhZGQoaW50IGEpCgl7CgkJbWludXRlcyArPSBhOwoJfQoKCXZvaWQgc2hvd1RpbWUoKSAvLwoJewoJICAgIGludCBob3VycyA9IG1pbnV0ZXMvNjAvMTE7CgkgICAgaW50IG1pbml0cyA9IChtaW51dGVzIC0gaG91cnMqNjAqMTEpIC8gMTE7CgkgICAgcHJpbnRmKCIlaTolaVxuIiwgaG91cnMsbWluaXRzKTsKCX0KCn07CgppbnQgc29sdmUodGltZSB0MSwgdGltZSB0MikgLy90MiBpcyB0aGUgZW5kIHRpbWUKewoJdGltZSB6ZXJvKDAsIDApOwoJY29uc3QgaW50IGludGVydmFsID0gMTIgKiA2MDsgLy9ub3QgMTIvMTEgYmVjb3VzZSBJIG11bHRpcGx5IGV2ZXJ5dGhpbmcgYnkgMTEKCXdoaWxlICh0MSA+PSB6ZXJvKSB6ZXJvLmFkZChpbnRlcnZhbCk7CglpbnQgcGFzc0NvdW50ID0gMDsKCXdoaWxlICh0MiA+PSB6ZXJvKQoJewoJCXBhc3NDb3VudCsrOwoJCXplcm8uYWRkKGludGVydmFsKTsKCX0KCXJldHVybiBwYXNzQ291bnQ7Cn0KCnZvaWQgYWJjKCkgLy8gdGhpcyBmdW5jdGlvbiBpcyBqdXN0IHRvIHNlZSBpZiBldmVyeXRoaW5nIGlzIHdvcmtpbmcuIFBhc3NpbmcgdGltZXMgYXJlIHJvdW5kZWQKewogICAgdGltZSB6ZXJvKDAsIDApOwogICAgdGltZSBlbmQoMjQsMDApOwoJY29uc3QgaW50IGludGVydmFsID0gMTIgKiA2MDsKICAgIGRvCiAgICB7CiAgICAgICAgemVyby5zaG93VGltZSgpOwogICAgICAgIHplcm8uYWRkKGludGVydmFsKTsKICAgIH13aGlsZShlbmQgPj0gemVybyk7Cn0KCmludCBtYWluKCkKewogICAgLy9hYmMoKTsKCXVuc2lnbmVkIGxvbmcgbG9uZyBuOwoJc2NhbmYoIiVsbHUiLCAmbik7Cgl3aGlsZSAobi0tKQoJewoJCWludCBhLCBiOwoJCXNjYW5mKCIlaTolaSIsICZhLCAmYik7CgkJdGltZSB0aW1lMShhLCBiKTsKCQlzY2FuZigiJWk6JWkiLCAmYSwgJmIpOwoJCXRpbWUgdGltZTIoYSwgYik7CgkJcHJpbnRmKCIlaSIsIHNvbHZlKHRpbWUxLCB0aW1lMikpOwoJCWlmKG4+MCkgcHJpbnRmKCgiXG4iKSk7Cgl9CglyZXR1cm4gMDsKfQo=