105252024-04-04 16:18:01111Jobstown-i milliomoscpp17Accepted 100/1001.835s7720 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,M;
	cin>>N>>M;
	vector<int>v(N),p(501),dp(250501);
	for(int i=0;i<N;i++){
		cin>>v[i];
	}
	for(int i=0;i<N;i++){
		int x;
		cin>>x;
		p[v[i]]=max(p[v[i]],x);
	}
	for(int i=1;i<=500;i++){
		p[i]=max(p[i],p[i-1]);
	}
	for(int i=0;i<250000;i++){
		for(int j=1;j<=500;j++){
			dp[i+j]=max(dp[i+j],dp[i]+p[j]);
		}
	}
	int ans=0;
	for(int i=0;i<=min(M,250000ll);i++){
		for(int j=1;j<=500;j++){
			ans=max(ans,dp[i]+(M-i)/j*p[j]);
		}
	}
	cout<<ans<<'\n';
	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted187ms5916 KiB
2Accepted186ms6208 KiB
subtask225/25
3Accepted186ms6244 KiB
4Accepted186ms6460 KiB
5Accepted515ms6496 KiB
6Accepted515ms6636 KiB
7Accepted515ms6572 KiB
8Accepted515ms6576 KiB
9Accepted515ms6604 KiB
10Accepted515ms6604 KiB
11Accepted517ms6860 KiB
12Accepted517ms7028 KiB
13Accepted515ms6996 KiB
14Accepted515ms6996 KiB
subtask316/16
15Accepted1.835s7144 KiB
16Accepted1.835s7172 KiB
17Accepted1.835s7128 KiB
18Accepted1.835s7416 KiB
19Accepted1.835s7424 KiB
20Accepted1.835s7340 KiB
21Accepted1.835s7336 KiB
subtask459/59
22Accepted186ms7376 KiB
23Accepted186ms7380 KiB
24Accepted1.835s7384 KiB
25Accepted1.835s7372 KiB
26Accepted1.835s7340 KiB
27Accepted1.835s7460 KiB
28Accepted1.835s7496 KiB
29Accepted1.835s7496 KiB
30Accepted1.835s7340 KiB
31Accepted1.835s7488 KiB
32Accepted1.835s7476 KiB
33Accepted1.835s7720 KiB