96792024-02-24 17:35:25szilJobstown-i milliomoscpp17Elfogadva 100/100259ms10596 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

#define MAX(a, b) a = max(a, b)

const int MAXN = 501;
const int MAXV = 600*600;

ll dp[MAXV];
ll t[MAXN], p[MAXN];

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int n, m; cin>>n>>m;
	for (int i = 1; i <= n; i++) cin >> t[i];
	for (int i = 1; i <= n; i++) cin >> p[i];
	for(int i = 1; i <= n; i++){
		for(int j = 0; j+t[i] < MAXV; j++){
			MAX(dp[j+t[i]], dp[j] + p[i]);
		}
	}
	ll mx = 0;
	for (int i = 1; i <= n; i++) {
		ll cnt = (m-MAXV >= 0) ? ((m-MAXV+t[i])/t[i]) : 0;
		ll next_m = m - cnt*t[i];
		ll curr = p[i]*cnt + dp[next_m];
		MAX(mx, curr);
	}
	cout<<mx<<endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva8ms7528 KiB
2Elfogadva7ms7744 KiB
subtask225/25
3Elfogadva7ms7952 KiB
4Elfogadva7ms8160 KiB
5Elfogadva179ms8248 KiB
6Elfogadva178ms8132 KiB
7Elfogadva178ms8352 KiB
8Elfogadva178ms8472 KiB
9Elfogadva179ms8820 KiB
10Elfogadva179ms8892 KiB
11Elfogadva252ms8864 KiB
12Elfogadva246ms9068 KiB
13Elfogadva256ms9232 KiB
14Elfogadva6ms9320 KiB
subtask316/16
15Elfogadva259ms9412 KiB
16Elfogadva248ms9480 KiB
17Elfogadva248ms9744 KiB
18Elfogadva6ms9692 KiB
19Elfogadva194ms9692 KiB
20Elfogadva194ms9848 KiB
21Elfogadva194ms9828 KiB
subtask459/59
22Elfogadva7ms9972 KiB
23Elfogadva7ms9936 KiB
24Elfogadva178ms9944 KiB
25Elfogadva178ms10020 KiB
26Elfogadva178ms10108 KiB
27Elfogadva257ms9964 KiB
28Elfogadva250ms10180 KiB
29Elfogadva247ms10264 KiB
30Elfogadva6ms10344 KiB
31Elfogadva179ms10344 KiB
32Elfogadva178ms10476 KiB
33Elfogadva178ms10596 KiB