Codeforces Round #205 (Div. 2) : C

感觉像是一个数位dp,高位的1如果不选的话,前面低位的数都可以选;不然只能选择为1的数;

代码:

 #include<iostream>
#include<algorithm>
#define maxn 100005
using namespace std;
char s[maxn];
int sum[maxn],num[maxn],n,ans,all; int main()
{
cin>>n;
for(int i=;i<=n;i++)
cin>>num[i],sum[i]+=sum[i-]+num[i];
cin>>s;
for(int i=n-;i>=;i--)
{
if(s[i]=='')continue;
ans=max(all+sum[i],ans);
all+=num[i+];
}
ans=max(all,ans);
cout<<ans;
return ;
}
上一篇:linux通过wget直接下载jdk,避免用户验证


下一篇:POJ 3252:Round Numbers