提出 #17738818


ソースコード 拡げる

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;
}

提出情報

提出日時
問題 D - 暑い日々 (Hot days)
ユーザ atug
言語 C++ (GCC 9.2.1)
得点 100
コード長 1248 Byte
結果 AC
実行時間 16 ms
メモリ 3784 KB

ジャッジ結果

セット名 set01 set02 set03 set04 set05
得点 / 配点 20 / 20 20 / 20 20 / 20 20 / 20 20 / 20
結果
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
セット名 テストケース
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
ケース名 結果 実行時間 メモリ
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-05 (土)
22:46:51 +00:00