竞赛讨论区 > C为什么就卡在72%了啊
头像
Moon_kite
发布于 02-08 18:14 重庆
+ 关注

C为什么就卡在72%了啊

#include"bits/stdc++.h"

using namespace std;

#define int long long

const int N=1e6+10;

int a[N],b[N],c[N];

vector<int>q0a,q1a,q0b,q1b;

void solve()

{

int n,x,y;

cin>>n>>x>>y;

for(int i=1;i<=n;i++){

char xx;cin>>xx;

a[i]=xx-'0';

}

for(int i=1;i<=n;i++){

char xx;cin>>xx;

b[i]=xx-'0';

}

for(int i=1;i<=n;i++){

char xx;cin>>xx;

c[i]=xx-'0';

}

for(int i=1;i<=n;i++){

if((a[i]+b[i])%2!=c[i]&&a[i]==0)q0a.push_back(i);

if((a[i]+b[i])%2!=c[i]&&a[i]==1)q1a.push_back(i);

if((a[i]+b[i])%2!=c[i]&&b[i]==0)q0b.push_back(i);

if((a[i]+b[i])%2!=c[i]&&b[i]==1)q1b.push_back(i);

}

int w1=q0a.size(),w2=q1a.size();

int u1=q0b.size(),u2=q1b.size();

if(x*2<=y)return cout<<(w1+w2)*x<<'\n',void();

int t=abs(w1-w2),t1=abs(u1-u2);

cout<<min(t*x+min(w1,w2)*y,t1*x+min(u1,u2)*y)<<'\n';

// cout<<t*x+(max(w1,w2)-t)*y;

}

signed main()

{

ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);

int t=1;

// cin>>t;

while(t--)solve();

return 0;

}

全部评论

(7) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐