您的位置:首页 > 其它

Codeforces Round #205 (Div. 2)C 选取数列可以选择的数使总数最大——dp

2013-10-11 13:50 381 查看
http://codeforces.com/contest/353/problem/C

Codeforces Round #205 (Div. 2)C

#include<stdio.h>

int s[109999];
int dp[109999];
char str[109999];
int Max(int a,int b){
if(a<b)return b;
else return a;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
int i;
dp[0]=0;
for(i=1;i<=n;i++){
scanf("%d",&s[i]);
dp[i]=dp[i-1]+s[i];
}

scanf("%s",str);
int all=0,max=0;
for(i=n-1;i>=0;i--){
if(str[i]=='0')continue;
max=Max(max,all+dp[i]);
all+=s[i+1];
}
max=Max(all,max);
printf("%d\n",max);
}

return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐