| 比赛 | 
    EYOI与SBOI开学欢乐赛10th | 
    评测结果 | 
    WWAWWAWWWW | 
    | 题目名称 | 
    01串 | 
    最终得分 | 
    20 | 
    | 用户昵称 | 
    00000 | 
    运行时间 | 
    0.000 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.00 MiB  | 
    | 提交时间 | 
    2022-10-10 19:58:35 | 
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,a[20000],b[20000],ad,nad,aa,bb;
char l;
ll ans;
int main(){
	freopen("zerone.in","r",stdin);
	freopen("zerone.out","w",stdout);
cin>>n>>ad>>nad;
for(int q=1;q<=n;q++)
{
	cin>>l;
	a[q]=l-48;
	if(a[q]) aa++;
} 
for(int q=1;q<=n;q++)
{
	cin>>l;
	b[q]=l-48;
	if(b[q]) bb++;
} 
if(aa!=bb)
{
	cout<<"-1";
	return 0;
}
if(ad>=nad)
{
	for(int q=1;q<=n;q++)
	{
		if(a[q])
		{
			if(!b[q]) ans++;
		}
	}
	cout<<ans*nad;
	return 0;
}
int mark[20000];
bb=0;
for(int q=1;q<=n;q++)
{
	if(b[q]) mark[++bb]=q;
}
aa=0;
for(int q=1;q<=n;q++)
{
	if(a[q])
	{
		aa++;
		ans+=abs(q-mark[aa]);
	}
}
cout<<ans*ad;
return 0;
}