题目描述: 输入格式: 输出格式:
小傲参加了学校文物修复小组,老师为考验同学们的细心程度,安排大家对碎陶片进行填色。陶片均可视为一个矩形,同学们可将陶片划分为一个n行n列的矩阵,每个矩阵元素都可被填充为红色R或蓝色B,但要求这个矩阵的每行每列中红色的数量都为偶数,或者仅改变一个矩阵元素的填色就能符合上述要求也是可以的,”改变矩阵元素”的操作定义为R变成B或者B变成R。因为同学们过于热情,提交了大量的陶片,老师一人无法完成检查,请你通过程序编写帮助老师完成陶片检查。
输入n+1行,第一行为矩阵的大小n (0 < n < 100),以下n行为矩阵每一行中的元素,元素之间以一个空格隔开。
如果矩阵符合条件,则输出OK;如果矩阵仅改变一个矩阵元素就能符合条件,则输出需要改变的元素所在的行号和列号,以一个空格分开。如果不符合以上两条,输出Corrupt。#include<iostream> #include<cstdio> using namespace std; #define N 100//你们懂我意思吧?不然下面还要打多少个100,定义一个标识符(N)来表示一个常量(100) int main(){ int n; char ar[N][N]={0};//二维数组用来存放输入内容 int row_num[N]={0},row_cnt=0,row=0;//(横排)row_num[N]存放“R”的个数,row_cnt存放错误个数,row存放横排数字(横着数第几个) int col_num[N]={0},col_cnt=0,col=0;//(竖排)同上 cin>>n;//输入矩阵大小 for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { cin>>ar[i][j];//输入矩阵 if(ar[i][j]=='R')//若等于‘R’ { row_num[i]++;//则数量自增 } } } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(ar[j][i]=='R') { col_num[i]++;//同上(竖排) } } } for(int i=0;i<n;i++) { if(row_num[i]%2==1)//若‘R’的个数是奇数 { row_cnt++;//则错误数自增 row=i;//将i存入横排中 } if(col_num[i]%2==1) { col_cnt++; col=i;//同上(竖排) } } if(row_cnt==0&&col_cnt==0) { cout<<"OK";//如果错误数为0,则OK } else if(row_cnt==1&&col_cnt==1) { cout<<row+1<<" "<<col+1;//若错误数为1,则输出横排竖排坐标(+1是因为字符串下标由0开始) } else { cout<<"Corrupt";//若错误数大于2,则输出不行 } return 0; }
是不是很棒呢
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算