ac

瑞瑞  •  7小时前


include<bits/stdc++.h>

using namespace std; int dp[2][800001];

int main(){

int n; cin>>n; memset(dp,0xf0,sizeof dp); dp[0][400000]=0; for(int i=1;i<=n;i++){

int s,f;
cin>>s>>f;
for(int j=0;j<=800000;j++){
	if(j-s>=0&&j-s<=800000)
	dp[i%2][j]=max(dp[(i-1)%2][j],
	dp[(i-1)%2][j-s]+s+f);
	else dp[i%2][j]=dp[(i-1)%2][j];
}

} int ans=0; for(int j=400000;j<=800000;j++){

if(dp[n%2][j]-(j-400000)>=0){
	ans=max(ans,dp[n%2][j]);
} 

} cout<<ans; return 0; }


评论:

请先登录,才能进行评论