- 字符串还原
 - @ 2017-05-09 13:14:38
 
只对了6个点/(ㄒoㄒ)/~~
代码如下
#include <cstdio>
using namespace std;
char a[4][10005],r;
int len;
int main(){
    scanf("%d",&len);
    scanf("%s %s %s",a[1]+1,a[2]+1,a[3]+1);
    int i,j;
    bool f;
    for(i=1;i<=3;i++){
        for(j=1;j<=len/2;j++){
            r=a[i][j];
            a[i][j]=a[i][len-j+1];
            a[i][len-j+1]=r;
        }
        int p,q;
        f=1;
        for(j=1;j<=3 && f;j++){
            if(j==i)
                continue;
            p=(int)(a[i][1]-a[j][1]);
            for(int u=2;u<=len;u++){
                q=(int)(a[i][u]-a[j][u]);
                if(q!=p && q!=p+26 && q!=p-26){
                    f=0;
                    break;
                }
            }
        }
        if(f){
            printf("%s\n",a[i]+1);
            return 0;
        }
        for(j=1;j<=len/2;j++){
            r=a[i][j];
            a[i][j]=a[i][len-j+1];
            a[i][len-j+1]=r;
        }
    }
    return 0;
}