同上
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x,y;
int ggg(vector<pair<char,char>>d)
{
int i;
int co1=0,co2=0;
for(auto v:d)
{
if(v.first=='1')
co1++;
else
co2++;
}
int minn=min(co1,co2);
int ans=minn*y;
int co11=0,co00=0;
for(i=2*minn;i<d.size();i++)
{
if(d[i].second=='1')
co11++;
else
co00++;
}
ans+=min(co11,co00)*y;
int dd=d.size()-2*min(co11,co00)-2*minn;
ans+=dd*x;
return ans;
}
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin>>n>>x>>y;
string a,b,c;
cin>>a>>b>>c;
a=" "+a;
b=" "+b;
c=" "+c;
int i;
vector<pair<char,char>>d,f;
for(i=1;i<=n;i++)
{
if(c[i]=='1')
{
if(b[i]==a[i])
{
d.push_back({a[i],b[i]});
f.push_back({b[i],a[i]});
}
}
else
{
if(a[i]!=b[i])
{
d.push_back({a[i],b[i]});
f.push_back({b[i],a[i]});
}
}
}
if(2*x<y)
{
cout<<d.size()*x;
return 0;
}
sort(d.begin(),d.end());
sort(f.begin(),f.end());
cout<<min(ggg(d),ggg(f));
return 0;
}
全部评论
(3) 回帖