Atcoder Educational DP Contest C - Vacation

View as PDF

Submit solution


Points: 0.25 (partial)
Time limit: 2.0s
Memory limit: 1G
Input: stdin
Output: stdout

Suggester:
Problem source:
Atcoder Educational DP Contest
Problem type
Allowed languages
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Kỳ nghỉ hè của Taro bắt đầu vào ngày mai, nên anh ấy đã quyết định lên kế hoạch cho nó ngay bây giờ.

Kỳ nghỉ bao gồm N ngày. Vào ngày thứ ~i~ ~(1 \le i \le N)~, Taro sẽ chọn và tham gia một trong các hoạt động sau:

  • A: Bơi ở biển - nhận được ~a_i~ điểm hạnh phúc.
  • B: Bắt bọ trên núi - nhận được ~b_i~ điểm hạnh phúc.
  • C: Làm bài tập ở nhà - nhận được ~c_i~ điểm hạnh phúc.

Vì Taro dễ cảm thấy buồn chán nên anh không thể tham gia các hoạt động giống nhau trong hai ngày liên tiếp trở lên.

Tìm tổng số điểm hạnh phúc tối đa mà Taro có thể nhận được.

Input

  • Dòng đầu tiên là số nguyên ~N~ ~(1 \le N \le 10^5)~
  • Dòng thứ ~i~ trong số ~N~ dòng tiếp theo chứa ~3~ số nguyên ~a_i~, ~b_i~, ~c_i~ ~(1 \le a_i, b_i, c_i \le 10^4)~ lần lượt là điểm hạnh phúc có thể nhận được khi Taro tham gia hoạt động ~A, B, C~ của ngày thứ ~i~.

Output

In ra một số nguyên duy nhất là tổng điểm hạnh phúc tối đa mà Taro có thể nhận được.

Sample 1

Input
3
10 40 70
20 50 80
30 60 90
Output
210

Nếu Taro tham gia các hoạt động theo thứ tự ~C, B, C~, anh ấy sẽ có được ~70+50+90=210~ điểm hạnh phúc

Sample 2

Input
1
100 10 1
Output
100

Sample 3

Input
7
6 7 8
8 8 3
2 5 2
7 8 6
4 6 8
2 3 4
7 5 1
Output
46

Taro nên tham gia các hoạt động theo thứ tự : ~C, A, B, A, C, B, A~.


Comments

Please read the guidelines before commenting.



  • 0
    jammyjunior  commented on Feb. 12, 2026, 10:28 a.m.

    Bai nay hoan toan co the giai ma khong su dung array. Hay hoan thanh bai truoc khi doc loi giai nay. Tgian chay: 0.02 s Space: 8.00 KB 🔥

    https://ide.usaco.guide/OlGNunII23imkYuiomz

    Good luck!


  • -1
    hoangquys  commented on Nov. 16, 2025, 10:48 a.m. edited

    include <bits/stdc++.h>

    using namespace std;

    int main() { int n; cin >> n; int a[n], b[n], c[n], dp[n][3]; for (int i = 0; i < n; i++) cin >> a[i] >> b[i] >> c[i]; dp[0][0] = a[0]; dp[0][1] = b[0]; dp[0][2] = c[0]; for (int i = 1; i < n; i++) { dp[i][0] = a[i] + max(dp[i-1][1], dp[i - 1][2]); dp[i][1] = b[i] + max(dp[i - 1][0], dp[i - 1][2]); dp[i][2] = c[i] + max(dp[i - 1][0], dp[i - 1][1]); } cout << max(max(dp[n - 1][0], dp[n - 1][1]), dp[n - 1][2]); return 0; }


  • 2
    vominhmanh10  commented on Oct. 31, 2025, 10:31 a.m. edited

    quy hoạch động thôi, các trạng thái là tới ngày i, và ngày i đã chọn 1 trong 3 cái nào
    vì không được 2 ngày liên tiếp trở lên nên chỉ xét dp[i - 1] với các lựa chọn khác lựa chọn đang dùng
    dp[i][0] = a[i][0] + max(dp[i - 1][1] + dp[i - 1][2])...

    n = int(input())
    a = [tuple(map(int, input().split())) for _ in range(n)]
    dp = [[0] * 3 for _ in range(n)]
    dp[0][0] = a[0][0]
    dp[0][1] = a[0][1]
    dp[0][2] = a[0][2]
    for i in range(1, n):
        dp[i][0] = a[i][0] + max(dp[i - 1][1], dp[i - 1][2])
        dp[i][1] = a[i][1] + max(dp[i - 1][0], dp[i - 1][2])
        dp[i][2] = a[i][2] + max(dp[i - 1][0], dp[i - 1][1])
    print(max(dp[n - 1]))
    

  • -12
    LVT_K66_TRANDUYBAO  commented on July 26, 2025, 1:56 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -14
    vutuankiet  commented on July 19, 2025, 3:40 p.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • 1
    HUNG2010  commented on May 31, 2025, 3:07 a.m.

    Code tham khảo: https://ide.usaco.guide/ORZ9PR885-KVvWChqfx


  • -15
    NgocQuang  commented on Feb. 20, 2025, 12:29 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -12
    tanhphungvivo2009  commented on Jan. 13, 2025, 11:53 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -27
    khiemgia1105  commented on Oct. 4, 2024, 7:48 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -97
    hanhsky  commented on Sept. 29, 2023, 10:13 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.