Untitled
unknown
plain_text
3 years ago
2.3 kB
2
Indexable
#include <stdio.h> char N[200005]; char X[200005]; char Y[200005]; char A[200005]; char B[200005]; char C[200005]; char D[200005]; int ABandAC(int i); int ABandBC(int i); int ABC(int i); int x,y,z; int main(void){ int n,m; scanf("%d %d",&n,&m); scanf("%s",N); for(int i=0;i<m;i++){ scanf(" %c %c",&X[i],&Y[i]); } for(int i=0;i<m;i++){ if(X[i]==Y[i]) continue; else if(ABC(i) && D[x]!='\0'){ if(z==1 && C[x]!='\0'){ C[x]=Y[i]; } else if(z==0 && C[x]!='\0'){ C[x]=B[x]; B[x]=Y[i]; } else if(z==1){ D[x]=Y[i]; } else { D[x]=C[x]; C[x]=B[x]; B[x]=Y[i]; } } else{ A[y]=X[i]; B[y]=Y[i]; y++; } } for(int i=0;i<=y;i++){ for(int j=0;j<n;j++){ if(C[i]=='\0'){ if(N[j]==A[i]){ N[j]=B[i]; } else if(N[j]==B[i]){ N[j]=A[i]; } } else if(D[i]=='\0'){ if(N[j]==A[i]){ N[j]=B[i]; } else if(N[j]==B[i]){ N[j]=C[i]; } else if(N[j]==C[i]){ N[j]=A[i]; } } else{ if(N[j]==A[i]){ N[j]=B[i]; } else if(N[j]==B[i]){ N[j]=C[i]; } else if(N[j]==C[i]){ N[j]=D[i]; } else if(N[j]==D[i]){ N[j]=A[i]; } } } } printf("%s\n",N); return 0; } int ABC(int i){ for(int j=i-1;j>=0;j--){ if(X[i]==Y[j] || Y[i]==Y[j]){ z=0; x=j; return 1; } else if(X[i]==X[j] || Y[i]==X[j]){ x=j; z=1; return 1; } } return 0; }
Editor is loading...