您的位置:首页 > 编程语言

特殊密码锁 的通过码是:(请注意,在openjudge上提交了程序并且通过以后,就可以下载到通过码。请注意看公告里关于编程作业的说明)

2017-11-20 14:41 1146 查看
//
//  main.cpp
//  openjudge特殊密码锁
//
//  Created by suway on 17/11/20.
//  Copyright © 2017年 suway.
//

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string s,t,fin;
int tmp=0,ans=1e9,n;
inline void flip(int i){
s[i-1]=s[i-1]=='1'?'0':'1';
s[i]=s[i]=='1'?'0':'1';
if(i+1<n) s[i+1]=s[i+1]=='1'?'0':'1';
}
int main(int argc, const char * argv[]) {
cin>>s>>fin;t=s;
n=s.size();
for(int i=1;i<n;i++)
if(s[i-1]!=fin[i-1]){
flip(i); tmp++;
}
if(s[n-1]==fin[n-1]) ans=tmp;

tmp=1;
s=t;
s[0]=s[0]=='1'?'0':'1';
s[1]=s[1]=='1'?'0':'1';
for(int i=1;i<n;i++)
if(s[i-1]!=fin[i-1]){
flip(i); tmp++;
}
if(s[n-1]==fin[n-1]) ans=min(ans,tmp);
if(ans==1e9) cout<<"impossible";
else cout<<ans;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐