about summary refs log tree commit diff
path: root/codechef/longcook.py
diff options
context:
space:
mode:
Diffstat (limited to 'codechef/longcook.py')
-rwxr-xr-xcodechef/longcook.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/codechef/longcook.py b/codechef/longcook.py
new file mode 100755
index 0000000..d57d9f2
--- /dev/null
+++ b/codechef/longcook.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python
+from calendar import isleap
+from datetime import datetime
+
+OVERLAP = [datetime(i or 400, 2, 7).weekday()
+           in ([4] if isleap(i or 400) else [4, 5]) for i in range(400)]
+OOP = sum(OVERLAP)
+
+
+def longcook(start, end):
+    delta = end - start
+    if delta <= 0: return 0
+    return delta//400*OOP + sum(OVERLAP[y % 400]
+                                for y in range(start, start + delta%400))
+
+
+for t in range(int(input())):
+    m1, y1 = map(int, input().split())
+    m2, y2 = map(int, input().split())
+    print(longcook(y1+(m1>2), y2+(m2!=1)))