codeforces 837B

国旗问题的水题 直接上下扫两遍;

代码:

#include<bits/stdc++.h>
using namespace std;
int n,m;
char s[105][105];
int x1,x2,x3;
int main()
{
int sum;
while(scanf("%d%d",&n,&m)!=EOF)
{
x1=0;
x2=0;
x3=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cin>>s[i][j];
if(s[i][j]=='B')x1++;
if(s[i][j]=='G')x2++;
if(s[i][j]=='R')x3++;
}
if(x1!=x2||x1!=x3||x2!=x3)
{
cout<<"NO"<<endl;
continue;
}
int a=0,b=0,ans=0,ok=1;
char x,y;
x=y=s[0][0];
for(int i=0;i<n;i++)
{
a=0;
b=0;
if(s[i][a]!=x)
{
x=s[i][a];
ans++;
}
while(s[i][a]==x)
{
if(a==m-1)
{
b=1;
break;
}
a++;
}
if(b!=1)
{
ok=0;
break;
}
}
if(ans==2&&ok==1)cout<<"YES"<<endl;
else
{
ans=0;
ok=1;
for(int i=0;i<m;i++)
{
a=0;
b=0;
if(s[a][i]!=y)
{
y=s[a][i];
ans++;
}
while(s[a][i]==y)
{
if(a==n-1)
{
b=1;
break;
}
a++;
}
if(b!=1)
{
ok=0;
break;
}
}
if(ans==2&&ok==1)cout<<"YES"<<endl;
else cout<<"NO"<<endl;

}

}
return 0;

}
#include<bits/stdc++.h>
using namespace std;
int n,m;
char s[105][105];
int x1,x2,x3;
int main()
{
int sum;
while(scanf("%d%d",&n,&m)!=EOF)
{
x1=0;
x2=0;
x3=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cin>>s[i][j];
if(s[i][j]=='B')x1++;
if(s[i][j]=='G')x2++;
if(s[i][j]=='R')x3++;
}
if(x1!=x2||x1!=x3||x2!=x3)
{
cout<<"NO"<<endl;
continue;
}
int a=0,b=0,ans=0,ok=1;
char x,y;
x=y=s[0][0];
for(int i=0;i<n;i++)
{
a=0;
b=0;
if(s[i][a]!=x)
{
x=s[i][a];
ans++;
}
while(s[i][a]==x)
{
if(a==m-1)
{
b=1;
break;
}
a++;
}
if(b!=1)
{
ok=0;
break;
}
}
if(ans==2&&ok==1)cout<<"YES"<<endl;
else
{
ans=0;
ok=1;
for(int i=0;i<m;i++)
{
a=0;
b=0;
if(s[a][i]!=y)
{
y=s[a][i];
ans++;
}
while(s[a][i]==y)
{
if(a==n-1)
{
b=1;
break;
}
a++;
}
if(b!=1)
{
ok=0;
break;
}
}
if(ans==2&&ok==1)cout<<"YES"<<endl;
else cout<<"NO"<<endl;

}

}
return 0;

}

原文地址:https://www.cnblogs.com/sortmin/p/7352010.html