Submission #73160291


Source Code Expand

//  ===== ライブラリインクルード =====
#include <bits/stdc++.h>
using namespace std;
#include <atcoder/all>
using namespace atcoder;

//  ===== 型の省略名定義 =====
using uint = unsigned int;
using ll = long long;
using ull = unsigned long long;
using vc = vector<char>;
using vvc = vector<vector<char>>;
using vi = vector<int>;
using vvi = vector<vector<int>>;
using vll = vector<ll>;
using vvll = vector<vector<ll>>;
using vd = vector<double>;
using vvd = vector<vector<double>>;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using vpii = vector<pii>;
using vvpii = vector<vector<pii>>;
using vpll = vector<pll>;
using vvpll = vector<vector<pll>>;
using vs = vector<string>;

//  ===== 略記用マクロ =====
#define rep(i, n) for (auto i = decltype(n){0}; i < (n); ++i)
#define rrep(i, n) for (auto i = (n); i-- > decltype(n){0}; )
#define nfor(i, l, r) for (auto i = (l); i < (r); ++i)
#define rnfor(i, l, r) for (auto i = (r); i-- > (l); )
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()

//  ===== 無限大定数 =====
constexpr int INF = 1e9;
constexpr ll LINF = 4e18;

//  ===== 入出力 =====
template <class T, class U>
ostream& operator<<(ostream& os, const pair<T, U>& p)
{return os << p.first << " " << p.second;}

template <typename T>
concept HasVal = requires(T v) {{ v.val() } -> convertible_to<long long>;};
ostream& operator<<(ostream& os, HasVal auto v) {return os << v.val();}

template <class T>
void print_vector(const vector<T>& v, const string& sep = "\n", bool omit_last = false)
{
    int siz = (int)v.size();
    rep(i, siz)
    {
        cout << v[i];
        if(!(omit_last && i == siz - 1)) cout << sep;
    }
}

//  ===== 汎用関数 =====
template <class T> bool chmax(T &a, T b){ if(a<b){a=b; return true;} return false;}
template <class T> bool chmin(T &a, T b){ if(a>b){a=b; return true;} return false;}
template <class T> void dedup(vector<T>& v) {v.erase(unique(all(v)), v.end());}

//  ========== テンプレ終わり ==========



int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    ll n, m, k;
    cin >> n >> m >> k;
    vll a(n), b(n);
    rep(i, n) cin >> a[i] >> b[i];

    //dp[i][j] : i番目の都市から出発する時点で、j円残っているような移動方法のうちの最大利益
    vvll dp(n+1, vll(m+1, -LINF));
    rep(i, n+1) dp[i][m] = 0;
    rep(i, n)
    {
        rep(d, k)
        {
            int pre_i = i - d;
            if(pre_i < 0) continue;
            
            rep(j, m+1)
            {
                if(j + b[i] <= m)
                {
                    chmax(dp[i+1][j], dp[pre_i][j + b[i]] + a[i]);
                }
            }
        }
    }

    ll ans = 0;
    rep(i, n) rep(j, m+1) chmax(ans, dp[i+1][j]);
    cout << ans << endl;
}

Submission Info

Submission Time
Task D - Merchant on the Highway
User yuyu1213
Language C++23 (GCC 15.2.0)
Score 400
Code Size 2918 Byte
Status AC
Exec Time 5 ms
Memory 3908 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 69
Set Name Test Cases
Sample sample01.txt, sample02.txt, sample03.txt
All sample01.txt, sample02.txt, sample03.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in46.txt, in47.txt, in48.txt, in49.txt, in50.txt, in51.txt, in52.txt, in53.txt, in54.txt, in55.txt, in56.txt, in57.txt, in58.txt, in59.txt, in60.txt, in61.txt, in62.txt, in63.txt, in64.txt, in65.txt, in66.txt
Case Name Status Exec Time Memory
in01.txt AC 1 ms 3580 KiB
in02.txt AC 1 ms 3584 KiB
in03.txt AC 1 ms 3496 KiB
in04.txt AC 1 ms 3632 KiB
in05.txt AC 1 ms 3712 KiB
in06.txt AC 4 ms 3720 KiB
in07.txt AC 1 ms 3572 KiB
in08.txt AC 1 ms 3640 KiB
in09.txt AC 1 ms 3632 KiB
in10.txt AC 1 ms 3708 KiB
in11.txt AC 4 ms 3876 KiB
in12.txt AC 1 ms 3728 KiB
in13.txt AC 1 ms 3688 KiB
in14.txt AC 1 ms 3576 KiB
in15.txt AC 1 ms 3632 KiB
in16.txt AC 1 ms 3884 KiB
in17.txt AC 4 ms 3824 KiB
in18.txt AC 1 ms 3496 KiB
in19.txt AC 2 ms 3836 KiB
in20.txt AC 1 ms 3880 KiB
in21.txt AC 4 ms 3832 KiB
in22.txt AC 4 ms 3824 KiB
in23.txt AC 4 ms 3908 KiB
in24.txt AC 5 ms 3808 KiB
in25.txt AC 4 ms 3824 KiB
in26.txt AC 1 ms 3880 KiB
in27.txt AC 3 ms 3832 KiB
in28.txt AC 1 ms 3828 KiB
in29.txt AC 1 ms 3588 KiB
in30.txt AC 1 ms 3580 KiB
in31.txt AC 1 ms 3636 KiB
in32.txt AC 1 ms 3640 KiB
in33.txt AC 1 ms 3540 KiB
in34.txt AC 1 ms 3476 KiB
in35.txt AC 1 ms 3588 KiB
in36.txt AC 1 ms 3580 KiB
in37.txt AC 1 ms 3884 KiB
in38.txt AC 1 ms 3832 KiB
in39.txt AC 1 ms 3636 KiB
in40.txt AC 1 ms 3580 KiB
in41.txt AC 1 ms 3580 KiB
in42.txt AC 1 ms 3580 KiB
in43.txt AC 1 ms 3476 KiB
in44.txt AC 1 ms 3776 KiB
in45.txt AC 4 ms 3788 KiB
in46.txt AC 4 ms 3692 KiB
in47.txt AC 4 ms 3740 KiB
in48.txt AC 1 ms 3860 KiB
in49.txt AC 1 ms 3884 KiB
in50.txt AC 4 ms 3828 KiB
in51.txt AC 4 ms 3692 KiB
in52.txt AC 4 ms 3692 KiB
in53.txt AC 1 ms 3584 KiB
in54.txt AC 1 ms 3540 KiB
in55.txt AC 1 ms 3640 KiB
in56.txt AC 1 ms 3640 KiB
in57.txt AC 1 ms 3540 KiB
in58.txt AC 1 ms 3636 KiB
in59.txt AC 1 ms 3588 KiB
in60.txt AC 1 ms 3540 KiB
in61.txt AC 1 ms 3580 KiB
in62.txt AC 1 ms 3616 KiB
in63.txt AC 1 ms 3476 KiB
in64.txt AC 1 ms 3476 KiB
in65.txt AC 1 ms 3568 KiB
in66.txt AC 1 ms 3660 KiB
sample01.txt AC 1 ms 3584 KiB
sample02.txt AC 1 ms 3476 KiB
sample03.txt AC 1 ms 3584 KiB