CodeForces 527B - Error Correct System 哈希

来源:互联网 发布:概念式建筑设计知乎 编辑:程序博客网 时间:2024/06/15 12:43
http://codeforces.com/problemset/problem/527/B#include<bits/stdc++.h>using namespace std;const int MAX=200005;char S[MAX],T[MAX];int N,Hash[200][200]={0},MarkS[200]={0},MarkT[200]={0};int main(){    cin>>N>>(S+1)>>(T+1);    int Ans=0;    for (int i=1;i<=N;i++)        if (S[i]!=T[i])            Ans++,Hash[S[i]][T[i]]=i,MarkS[S[i]]=i,MarkT[T[i]]=i;    if (Ans<2)        cout<<Ans<<endl<<"-1 -1";    else    {        int Q=-1,W=-1;        bool Flag1=false,Flag2=false;        for (int i='a';i<='z';i++)        {            if (MarkS[i]!=0&&MarkT[i]!=0)                Flag1=true,Q=MarkS[i],W=MarkT[i];            for (int j='a';j<='z';j++)            {                if (Hash[i][j]!=0&&Hash[j][i]!=0)                    Flag2=true,Q=Hash[i][j],W=Hash[j][i],i=j=199;            }        }        if (Flag2)            cout<<Ans-2<<endl<<Q<<' '<<W;        else if (Flag1)            cout<<Ans-1<<endl<<Q<<' '<<W;        else            cout<<Ans<<endl<<"-1 -1";    }    return 0;}
0 0
原创粉丝点击