結果

問題 No.3713 海底探索
ユーザー へきぼこ 競プロのすがた
提出日時 2026-09-10 19:27:40
言語 C++23(gcc16)
(gcc 16.1.0 + boost 1.92.0 + ACL)
コンパイル:
g++-16 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 6 ms / 2,000 ms
+ 59µs
コード長 1,087 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,144 ms
コンパイル使用メモリ 360,916 KB
実行使用メモリ 10,752 KB
最終ジャッジ日時 2026-09-14 15:30:14
合計ジャッジ時間 5,189 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 23
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define oke cout << "Yes" << '\n';
#define dame cout << "No" << '\n';
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
using Hai2 = vector<vector<ll>>;
using HaiW = vector<vector<pair<ll,ll>>>;
using HaiB = vector<vector<bool>>;
using Hai3 = vector<vector<vector<ll>>>;

int main() {
	cout << fixed << setprecision(15);
    ll N,A,B;
    cin>>N>>A>>B;
    vector<ll>X(N),Y(N);
    rep(i,N){
        cin>>X[i]>>Y[i];
    }

    Hai3 DP(N+1,Hai2(A+1,vector<ll>(N+1,1e18)));
    DP[0][0][0]=0;
    rep(i,N){
        rep(j,A+1){
            rep(k,N){
                DP[i+1][j][k]=min(DP[i][j][k],DP[i+1][j][k]);
                if(j+X[i]<=A){
                    DP[i+1][j+X[i]][k+1]=min(DP[i+1][j+X[i]][k+1],DP[i][j][k]+Y[i]);
                }
            }
        }
    }

    ll ans=0;
    rep(i,N+1){
        rep(j,A+1){
            if(DP[N][j][i]<=B){
                ans=max(ans,(ll)i);
            }
        }
    }
    cout<<ans<<endl;
}
0