[Buổi 2][Rẽ nhánh][ADV] Bài 1: Ngày kế tiếp


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Ngày kế tiếp

Bối cảnh

Một lịch điện tử nhận một ngày hợp lệ và cần hiển thị ngày ngay sau đó. Phần lớn trường hợp chỉ cần tăng ngày lên 1, nhưng ở cuối tháng phải chuyển sang tháng mới, còn ngày 31/12 phải chuyển sang năm mới.

Để giải quyết chính xác, trước tiên bạn cần xác định tháng hiện tại có bao nhiêu ngày. Riêng tháng 2 phụ thuộc vào việc năm hiện tại có phải năm nhuận hay không.

Yêu cầu

Input luôn là một ngày hợp lệ. Hãy tìm ngày ngay sau đó:

  1. Xác định năm hiện tại có nhuận hay không.
  2. Xác định số ngày của tháng hiện tại: tháng 2 có 28/29 ngày; tháng 4,6,9,11 có 30 ngày; các tháng còn lại có 31 ngày.
  3. Nếu day chưa phải ngày cuối tháng, chỉ tăng day lên 1.
  4. Nếu là ngày cuối tháng, đưa day về 1 và tăng tháng; riêng tháng 12 thì chuyển sang 1/1 của năm kế tiếp.

Input

Dữ liệu vào được cung cấp theo định dạng sau:

day month year.

Hãy đọc các giá trị theo đúng thứ tự và ý nghĩa đã mô tả trong đề bài.

Output

In kết quả theo đúng định dạng sau:

nextDay nextMonth nextYear.

Không in thêm lời giải thích, nhãn hoặc ký tự ngoài phần kết quả được yêu cầu.

Ràng buộc

Input luôn là ngày hợp lệ.

Ví dụ 1

Input

1 1 2026

Output

2 1 2026

Giải thích ví dụ

Ngày vào là 1/1/2026. Xác định số ngày của tháng 1 trong năm 2026, rồi kiểm tra đây có phải ngày cuối tháng hay không. Sau khi tăng đúng một ngày, ta thu được 2/1/2026, nên output là 2 1 2026.

Ví dụ 2

Input

28 2 2024

Output

29 2 2024

Giải thích ví dụ

Ngày vào là 28/2/2024. Xác định số ngày của tháng 2 trong năm 2024, rồi kiểm tra đây có phải ngày cuối tháng hay không. Sau khi tăng đúng một ngày, ta thu được 29/2/2024, nên output là 29 2 2024.

Thông tin học tập

  • Buổi: B02
  • Concepts: nested conditionals, leap year, month boundaries
  • Giới hạn kiến thức: B01-B02
  • Time limit: 1 second
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo