ABC 322
Table of Contents
https://atcoder.jp/contests/abc322
A. First ABC 2
https://atcoder.jp/contests/abc322/tasks/abc322_a
B. Prefix and Suffix
https://atcoder.jp/contests/abc322/tasks/abc322_b
C. Festival
https://atcoder.jp/contests/abc322/tasks/abc322_c
D. Polyomino
https://atcoder.jp/contests/abc322/tasks/abc322_d
E. Product Development
https://atcoder.jp/contests/abc322/tasks/abc322_e
解説 AC.
void solve() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, k, p;
    cin >> n >> k >> p;
    vll c(n + 1);
    vvll A(n + 1, vll(k));
    rep(i, n) {
        cin >> c[i + 1];
        rep(j, k) {
            cin >> A[i + 1][j];
        }
    }
    vector<map<vll, ll>> dp(n + 1);
    dp[0][vll(k, 0)] = 0;
    rep2(i, 1, n + 1) {
        dp[i] = dp[i - 1];
        for (auto [v, val] : dp[i - 1]) {
            vll t = v;
            rep(j, k) {
                t[j] += A[i][j];
                if (t[j] > p)
                    t[j] = p;
            }
            if (dp[i].count(t)) {
                chmin(dp[i][t], val + c[i]);
            } else {
                dp[i][t] = val + c[i];
            }
        }
    }
    vll v(k, p);
    if (dp[n].count(v)) {
        cout << dp[n][v] << endl;
    } else {
        cout << -1 << endl;
    }
}
F. Vacation Query
https://atcoder.jp/contests/abc322/tasks/abc322_f