結果

問題 No.2232 Miser's Gift
ユーザー hiro71687k
提出日時 2023-03-05 18:22:10
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 275 ms / 2,000 ms
コード長 672 bytes
コンパイル時間 4,333 ms
コンパイル使用メモリ 249,948 KB
最終ジャッジ日時 2025-02-11 05:33:44
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 55
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using ll=long long;
using ld=long double;
ld pie=3.14159265359;
ll inf=10000000000000001;
ll mod=998244353;
int main(){
	ll n,w;
	cin >> n >> w;
	vector<ll>ww(n),v(n);
	for (ll i = 0; i < n; i++)
	{
		cin >> ww[i]>>v[i];
	}
	vector<ll>dp(w+1,-1);
	dp[0]=0;
	for (ll i = 0; i < n; i++)
	{
		for (ll j = w-1; j >=0; j--)
		{
			if (dp[j]==-1)
			{
				continue;
			}
			if (j+ww[i]<=w)
			{
				dp[j+ww[i]]=max(dp[j+ww[i]],dp[j]+v[i]);
			}
		}
	}
	for (ll i = 1; i <=w; i++)
	{
		dp[i]=max(dp[i],dp[i-1]);
	}
	for (ll i = w-1; i >=0; i--)
	{
		cout << dp[w]-dp[i]+1 << endl;
	}
}
0