922E - Birds - CodeForces Solution


dp *2200

Please click on ads to support us..

C++ Code:

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
const int M=1e4+5,N=1e3+5;
ll n,W,B,X;
int A[N],sum,c[N];
inline void init(){
	scanf("%I64d%I64d%I64d%I64d",&n,&W,&B,&X);
	for (int i=1;i<=n;i++){
		scanf("%d",&A[i]);
		sum+=A[i];
	}
	for (int i=1;i<=n;i++){
		scanf("%d",&c[i]);
	}
}
ll dp[N][M];
int ans;

void solve(){
	memset(dp,-1,sizeof dp); dp[0][0]=W;
	for (int i=1;i<=n;i++){
		for (int j=0;j<=sum;j++){
			for (int k=0;k<=min(j,A[i]);k++){
				if (dp[i-1][j-k]==-1) continue;
				ll tmp=min(W+(j-k)*B,dp[i-1][j-k]+X)-(ll)c[i]*k;
				if (tmp<0) continue;
				dp[i][j]=max(dp[i][j],min(W+j*B,tmp));
				ans=max(ans,j);
			}
		}
	}
	printf("%d\n",ans);
}

signed main(){
	init();
	solve();
	return 0;
}
	 		 		  	 		          	 		


Comments

Submit
0 Comments
More Questions

1363A - Odd Selection
131B - Opposites Attract
490C - Hacking Cypher
158B - Taxi
41C - Email address
1373D - Maximum Sum on Even Positions
1574C - Slay the Dragon
621A - Wet Shark and Odd and Even
1395A - Boboniu Likes to Color Balls
1637C - Andrew and Stones
1334B - Middle Class
260C - Balls and Boxes
1554A - Cherry
11B - Jumping Jack
716A - Crazy Computer
644A - Parliament of Berland
1657C - Bracket Sequence Deletion
1657B - XY Sequence
1009A - Game Shopping
1657A - Integer Moves
230B - T-primes
630A - Again Twenty Five
1234D - Distinct Characters Queries
1183A - Nearest Interesting Number
1009E - Intercity Travelling
1637B - MEX and Array
224A - Parallelepiped
964A - Splits
1615A - Closing The Gap
4C - Registration System