第一个点过不了。。

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
char a[10001],b[10001],c[10001];
int n,x=0,y=0,z=0;
void solve(char a[],char b[],char c[]){
int i;
for(i=0;i<=n-1;i++){
if((a[i]+b[i]-2*c[n-1-i])%26!=0){
x=1;
}
}
for(i=0;i<=n-1;i++){
if((c[i]+b[i]-2*a[n-1-i])%26!=0){
y=1;
}
}
for(i=0;i<=n-1;i++){
if((a[i]+c[i]-2*b[n-1-i])%26!=0){
z=1;
}
}
}
int main() {
int i;
cin>>n>>a>>b>>c;
solve(a,b,c);
if(x==0){
for(i=n-1;i>=0;i--){
cout<<c[i];
}
}
if(y==0){
for(i=n-1;i>=0;i--){
cout<<a[i];
}
}
if(z==0){
for(i=n-1;i>=0;i--){
cout<<b[i];
}
}
return 0;
}

1 条评论

  • @ 2017-08-06 16:16:44

    注意范围……k=0.我第一个先也不能过,后来加了个范围就好了。
    比如说,万一三个字符串是这样的:
    aba
    aba
    aba
    那样三个都有可能是对的,这种情况下,输出任意一个就好了。

  • 1

信息

ID
1449
难度
6
分类
字符串 | 模拟 点击显示
标签
递交数
6903
已通过
1850
通过率
27%
被复制
9
上传者