Submission #17738818


Source Code Expand

Copy
#include <bits/stdc++.h>
using namespace std;
void init(int N, vector<vector<int>> &dp, int T, const vector<int> &A_vec,
const vector<int> &B_vec)
{
for (int i = 0; i < N; ++i) {
if (A_vec.at(i) <= T && T <= B_vec.at(i))
dp.at(0).at(i) = 0;
}
}
int main()
{
int D, N;
cin >> D >> N;
vector<int> T_vec(D);
for (int i = 0; i < D; ++i)
cin >> T_vec.at(i);
vector<int> A_vec(N), B_vec(N), C_vec(N);
for (int i = 0; i < N; ++i)
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <bits/stdc++.h>
using namespace std;

void init(int N, vector<vector<int>> &dp, int T, const vector<int> &A_vec,
        const vector<int> &B_vec)
{
    for (int i = 0; i < N; ++i) {
        if (A_vec.at(i) <= T && T <= B_vec.at(i))
            dp.at(0).at(i) = 0;
    }
}

int main()
{
    int D, N;
    cin >> D >> N;
    vector<int> T_vec(D);
    for (int i = 0; i < D; ++i)
        cin >> T_vec.at(i);
    vector<int> A_vec(N), B_vec(N), C_vec(N);
    for (int i = 0; i < N; ++i)
        cin >> A_vec.at(i) >> B_vec.at(i) >> C_vec.at(i);
    vector<vector<int>> dp(D, vector<int>(N, -1));
    init(N, dp, T_vec.at(0), A_vec, B_vec);
    for (int i = 0; i < D - 1; ++i) {
        int T = T_vec.at(i + 1);
        for (int j = 0; j < N; ++j) {
            if (T < A_vec.at(j) || B_vec.at(j) < T)
                continue;
            for (int k = 0; k < N; ++k) {
                int dp_ik = dp.at(i).at(k);
                if (dp_ik == -1)
                    continue;
                int tmp = dp_ik + abs(C_vec.at(k) - C_vec.at(j));
                if (dp.at(i + 1).at(j) < tmp)
                    dp.at(i + 1).at(j) = tmp;
            }
        }
    }
    cout << *max_element(dp.at(D - 1).begin(), dp.at(D - 1).end()) << endl;
}

Submission Info

Submission Time
Task D - 暑い日々 (Hot days)
User atug
Language C++ (GCC 9.2.1)
Score 100
Code Size 1248 Byte
Status AC
Exec Time 16 ms
Memory 3784 KB

Judge Result

Set Name set01 set02 set03 set04 set05
Score / Max Score 20 / 20 20 / 20 20 / 20 20 / 20 20 / 20
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
Case Name Status Exec Time Memory
data1 AC 6 ms 3424 KB
data2 AC 2 ms 3544 KB
data3 AC 16 ms 3772 KB
data4 AC 13 ms 3656 KB
data5 AC 15 ms 3784 KB


2025-04-11 (Fri)
22:54:36 +00:00