#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include ///////// #define REP(i, x, n) for(int i = x; i < n; i++) #define rep(i,n) REP(i,0,n) #define P(p) std::cout<<(p)<>befS>>N>>aftS; int bef[3],aft[3]; int befC=0,aftC=0;//oの数 rep(i,3){ if(befS[i]=='o'){ bef[i] = 1; ++befC; }else{ bef[i] = 0; } if(aftS[i]=='o'){ aft[i] = 1; ++aftC; }else{ aft[i] = 0; } } if( (befC == 0 && aftC==0) || (befC == 3 &&aftC==3)){ P("FAILURE"); return 0; } else if( befC != aftC){ P("SUCCESS"); return 0; } int befT,aftT; if(befC == 1){ rep(i,3){ if(befS[i] == 'o'){ befT = i; } } rep(i,3){ if(aftS[i] == 'o'){ aftT = i; } } } else if(befC == 2){ rep(i,3){ if(befS[i] == 'x'){ befT = i; } } rep(i,3){ if(aftS[i] == 'x'){ aftT = i; } } } //befT,aftT /0,1,2 if(N==0){ if(befT == aftT){ P("FAILURE"); }else{ P("SUCCESS"); } } else if(N==1){ int A,B; if(befC == 1){ rep(i,3){ if(bef[i]==1)A=i; if(aft[i]==1)B=i; } } else if(befC == 2){ rep(i,3){ if(bef[i]==0)A=i; if(aft[i]==0)B=i; } } if(A==1){ if(B==1){ P("SUCCESS"); }else{ P("FAILURE"); } } else if( A==0){ if(B==2){ P("SUCCESS"); }else{ P("FAILURE"); } } else if(A==2){ if(B==0){ P("SUCCESS"); }else{ P("FAILURE"); } } } else{ P("FAILURE"); } return 0; }