Ngày thứ bao nhiêu
Xem dạng PDFPhòng Đào tạo của Đại học Công nghiệp Hà Nội đang viết phần mềm nhắc lịch học vụ. Để tiện tính toán, phần mềm đổi mỗi ngày dương lịch thành số thứ tự của ngày đó trong năm: ngày 1 tháng 1 có số thứ tự ~1~, ngày 2 tháng 1 có số thứ tự ~2~, …, ngày 31 tháng 12 có số thứ tự ~365~ (hoặc ~366~ nếu năm đó là năm nhuận). Bên cạnh đó, phần mềm còn cho biết trong năm ấy còn lại bao nhiêu ngày sau ngày đang xét (không tính chính ngày đó).
Nhắc lại: các tháng ~1, 3, 5, 7, 8, 10, 12~ có ~31~ ngày; các tháng ~4, 6, 9, 11~ có ~30~ ngày; tháng ~2~ có ~28~ ngày, riêng năm nhuận có ~29~ ngày. Năm ~y~ là năm nhuận nếu ~y~ chia hết cho ~400~, hoặc ~y~ chia hết cho ~4~ nhưng không chia hết cho ~100~. Chẳng hạn ~2000~ và ~2024~ là năm nhuận, còn ~1900~ và ~2026~ thì không. Trong bài này quy tắc trên được áp dụng cho mọi năm từ ~1~ đến ~9999~.
Yêu cầu
Cho ~T~ ngày, với mỗi ngày hãy tính số thứ tự của ngày đó trong năm và số ngày còn lại của năm sau ngày đó.
Dữ liệu vào
- Dòng thứ nhất chứa số nguyên dương ~T~;
- ~T~ dòng tiếp theo, mỗi dòng chứa ba số nguyên ~d~, ~m~, ~y~ cách nhau bởi dấu cách, mô tả ngày ~d~ tháng ~m~ năm ~y~.
Kết quả ra
Ghi ra ~T~ dòng. Dòng thứ ~i~ gồm hai số nguyên cách nhau bởi một dấu cách: số thứ tự trong năm của ngày thứ ~i~ trong dữ liệu vào và số ngày còn lại của năm sau ngày đó.
Ràng buộc
~1 \le T \le 1000~; ~1 \le y \le 9999~; mọi bộ ~(d, m, y)~ đều là một ngày có thật theo quy tắc nêu trên.
- Subtask 1 (30% số điểm – test 01–06): mọi ngày đều thuộc tháng ~1~;
- Subtask 2 (30% số điểm – test 07–12): không có năm nhuận;
- Subtask 3 (40% số điểm – test 13–20): không có ràng buộc bổ sung.
Ví dụ
Dữ liệu vào mẫu 1
4
1 1 2026
5 10 2026
29 2 2024
31 12 2000
Kết quả ra mẫu 1
1 364
278 87
60 306
366 0
Giải thích
Năm ~2026~ không nhuận nên có ~365~ ngày: ngày 1/1 là ngày thứ ~1~, sau nó còn ~364~ ngày. Trước tháng ~10~ có ~31+28+31+30+31+30+31+31+30 = 273~ ngày nên ngày 5/10/2026 là ngày thứ ~278~, còn lại ~365 - 278 = 87~ ngày. Năm ~2024~ nhuận (~366~ ngày): ngày 29/2 là ngày thứ ~31 + 29 = 60~, còn lại ~306~ ngày. Năm ~2000~ chia hết cho ~400~ nên cũng nhuận: ngày 31/12 là ngày thứ ~366~ và là ngày cuối cùng của năm.
Bình luận