結果

問題 No.2232 Miser's Gift
ユーザー GlinTFraulein
提出日時 2023-03-03 23:39:30
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,023 bytes
コンパイル時間 2,115 ms
コンパイル使用メモリ 198,208 KB
最終ジャッジ日時 2025-02-11 04:45:33
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 1 WA * 54
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
//#include <atcoder/all>
 
#define elif else if
#define ll long long
#define vll vector<long long>
#define vec vector
#define embk emplace_back
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define rep3(i, n, k) for (int i = k; i < (int)(n); i++)
#define all(a) a.begin(), a.end()
 
using namespace std;
//using namespace atcoder;
const ll INF = 1LL << 60;
const ll mod = 998244353;

void printvec(vector<ll> a, ll b) {
  for (int i = 0; i <= b; i++) {
    cout << a[i];
    if (i == b) cout << endl;
    else cout << ' ';
  }
}

int main() {
  ll n, wl; cin >> n >> wl;
  vll w(n), v(n); rep(i, n) cin >> w[i] >> v[i];
  
  vec<vll> dp(n+1, vll(200000, -INF));  //dp[品目][重さ] = 価値
  dp[0][0] = 0;
  
  rep(i, n) {
    rep(j, wl) {
      dp[i+1][j] = max(dp[i][j], dp[i+1][j]);
      dp[i+1][j+w[i]] = max(dp[i][j]+v[i], dp[i+1][j+w[i]]);
    }
  }
  
  rep3(i, wl+1, 1) {
    cout << max(1LL, dp[n][wl] - dp[n][wl-i] + 1) << endl;
  }
  
  //rep(i, n+1) printvec(dp[i], wl);
  
}
0