cf#324 Div.2 Problem C Marina and Vasya
2015-10-07 17:19
399 查看
#include <iostream> #include <cstdio> using namespace std; int n,t,n1,n2,t1,t2,t3,t4; string s1,s2; int main() { scanf("%d%d",&n,&t); cin>>s1>>s2; for(int i=0;i<n;i++) { if(s1[i]==s2[i]) n1++; } n2=n-n1; if(n2&1) { if(t<=n2/2) s1="-1"; else if(t>=(n2/2+1)&&t<=(n2/2+n1+1)) { t1=1;t2=n2/2;t3=t-n2/2-1; for(int i=0;i<n;i++) { if(s1[i]!=s2[i]&&t1>0) { for(char c='a';;c++) { if(s1[i]!=c&&s2[i]!=c) { s1[i]=c; t1--; break; } } } else if(s1[i]!=s2[i]&&t2>0) { s1[i]=s2[i]; t2--; } else if(s1[i]==s2[i]&&t3>0) { for(char c='a';;c++) { if(s1[i]!=c&&s2[i]!=c) { s1[i]=c; t3--; break; } } } } } else if(t>=(n2/2+n1+2)&&t<n2) s1="-1"; else if(t>=n2) { t1=n2;t2=t-t1; for(int i=0;i<n;i++) { if(s1[i]!=s2[i]&&t1>0) { for(char c='a';;c++) { if(s1[i]!=c&&s2[i]!=c) { s1[i]=c; t1--; break; } } } else if(s1[i]==s2[i]&&t2>0) { for(char c='a';;c++) { if(s1[i]!=c) { s1[i]=c; t2--; break; } } } } } } else if(!(n2&1)) { if(t<n2/2) s1="-1"; else if(t>=n2/2&&t<=(n2/2+n1)) { t1=n2/2;t2=t-t1; for(int i=0;i<n;i++) { if(s1[i]!=s2[i]&&t1>0) { s1[i]=s2[i]; t1--; } else if(s1[i]==s2[i]&&t2>0) { for(char c='a';;c++) { if(s1[i]!=c) { s1[i]=c; t2--; break; } } } } } else if(t>=(n2/2+n1+1)&&t<n2) { t1=n2-t;t2=t-t1; for(int i=0;i<n;i++) { if(s1[i]!=s2[i]&&t1>0) { s1[i]=s2[i]; t1--; } else if(s1[i]!=s2[i]&&t2>0) { for(char c='a';;c++) { if(s1[i]!=c&&s2[i]!=c) { s1[i]=c; t2--; break; } } } } } else if(t>=n2) { t1=n2;t2=t-t1; for(int i=0;i<n;i++) { if(s1[i]!=s2[i]&&t1>0) { for(char c='a';;c++) { if(s1[i]!=c&&s2[i]!=c) { s1[i]=c; t1--; break; } } } else if(s1[i]==s2[i]&&t2>0) { for(char c='a';;c++) { if(s1[i]!=c) { s1[i]=c; t2--; break; } } } } } } cout<<s1<<"\n"; return 0; }
相关文章推荐
- jQuery入门 构造函数
- Python类方法__init__和__del__构造、析构过程分析
- 关于获得ArrayAdapter对象的细节
- 类的继承与派生
- 探讨“临时对象”(temporary object)
- 后缀树的构造方法
- 10黑马程序员_类,属性,构造
- [java起步]构造函数、构造代码快、静态代码块的执行顺序
- 二叉树构造
- Hdu 5302 Connect the Graph 2015 Multi-University Training Contest 2
- [C++_3]构造函数&析构函数&this
- cf#324 Div.2 Problem A Olesya and Rodion
- C++11类(2)构造,清理,复制,移动 Construction, Cleanup, Copy, and Move
- C++ 对象构造, 初始化, 赋值
- C和C++的面向对象专题(7)——单例模式解决静态成员对象和全局对象的构造顺序难题
- 【C++第十课】---继承中的构造与析构
- 【深度探索STL】空间配置器(一) 构造和析构
- sgu 138解题记录
- C++ - 派生类(derived class) 的 构造(construct) 和 析构(destruct)顺序 详解
- C++ - 虚继承(virtual inheritance)的构造(construct)和析构(destruct)顺序