#include<iostream>
#include<string>
using namespace std;
bool isexchange(char a1[5][5],int x,int y)
{
int count=1;
for (int left=y-1; left >=0; left--)
{
if (a1[x][y]==a1[x][left])
{
count++;
}
else
{
break;
}
}
if (count>=3)
{
return true;
}
for (int right=y+1;right<5;right++)
{
if (a1[x][y]==a1[x][right])
{
count++;
}
else
{
break;
}
}
if (count>=3)
{
return true;
}
else
{
count=0;
}
for (int up=x-1;up>=0; up--)
{
if (a1[x][y]==a1[up][y])
{
count++;
}
else
{
break;
}
}
if (count>=3)
{
return true;
}
for (int down=x+1;x<5;++down)
{
if (a1[x][y]==a1[down][y])
{
count++;
}
else
{
break;
}
}
if (count>=3)
{
return true;
}
else
{
return false;
}
}
int main()
{
string str;
while(cin>>str)
{
int len=str.size();
if (len!=25)
{
cout<<"NO"<<endl;
return 0;
}
char a[5][5];
int k=0;
for (int i = 0; i <5 ; ++i)
{
for (int j = 0; j <5 ; ++j)
{
a[i][j]=str[k];
k++;
}
}
int allcout=0;
for (int i1 = 0; i1 <5 ; ++i1)
{
for (int j1 = 0; j1 <5 ; ++j1)
{
bool flag=false;
if (i1>0)//up
{
swap(a[i1][j1],a[i1-1][j1]);
flag=isexchange(a,i1,j1);
if (flag==true)
{
int re=i1*5+j1+1;
cout<<"YES"<<" "<<re<<endl;
allcout=1;
continue;
}
swap(a[i1][j1],a[i1-1][j1]);
}
if (i1<4) //down
{
swap(a[i1][j1],a[i1+1][j1]);
flag=isexchange(a,i1,j1);
if (flag==true)
{
int re=i1*5+j1+1;
cout<<"YES"<<" "<<re<<endl;
allcout=1;
continue;
}
swap(a[i1][j1],a[i1+1][j1]);
}
if (j1>0) //left
{
swap(a[i1][j1],a[i1][j1-1]);
flag=isexchange(a,i1,j1);
if (flag==true)
{
int re=i1*5+j1+1;
cout<<"YES"<<" "<<re<<endl;
allcout=1;
continue;
}
swap(a[i1][j1],a[i1][j1-1]);
}
if (j1<4)//right
{
swap(a[i1][j1],a[i1][j1+1]);
flag=isexchange(a,i1,j1);
if (flag==true)
{
int re=i1*5+j1+1;
cout<<"YES"<<" "<<re<<endl;
allcout=1;
continue;
}
swap(a[i1][j1],a[i1][j1+1]);
}
}
}
if (allcout==0)
{
cout<<"NO"<<endl;
}
}
}
2016华为机试-糖果消消除实现
最新推荐文章于 2024-04-24 08:07:46 发布