1 条题解
-
0
#include<bits/stdc++.h> using namespace std; const int N=5e6+5;char a[N],b[N]; int main() { scanf("%s%s",a+1,b+1); int len=strlen(a+1); for(int i=1;i<=len;i++) { if(a[i]==b[i])a[i]=b[i]=0; else a[i]=b[i]=1; } if(len==1) { if(a[1]==0)printf("0\n");else printf("1\n"); return 0; } if(len==2) { if(a[1]!=a[2])printf("impossible\n"); else if(a[1]==a[2]) { if(a[1]==0)printf("0\n");else printf("1\n"); } return 0; } int n1=1,n2=0; a[1]^=1;a[2]^=1; for(int i=1;i<=len-1;i++) { if(a[i]==1){a[i]^=1;a[i+1]^=1;a[i+2]^=1;n1++;} if(b[i]==1){b[i]^=1;b[i+1]^=1;b[i+2]^=1;n2++;} } if(a[len]==1)n1=1e8; if(b[len]==1)n2=1e8; int ans=min(n1,n2); if(ans==int(1e8))printf("impossible\n"); else printf("%d\n",ans); return 0; }
- 1
信息
- ID
- 829
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 72
- 已通过
- 27
- 上传者