B. Sereja and Mirroring

B. Sereja and Mirroring

B. Sereja and Mirroring
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Let’s assume that we are given a matrix b of size x × y, let’s determine the operation of mirroring matrix b. The mirroring of matrix b is a2x × y matrix c which has the following properties:

  • the upper half of matrix c (rows with numbers from 1 to x) exactly matches b;
  • the lower half of matrix c (rows with numbers from x + 1 to 2x) is symmetric to the upper one; the symmetry line is the line that separates two halves (the line that goes in the middle, between rows x and x + 1).

Sereja has an n × m matrix a. He wants to find such matrix b, that it can be transformed into matrix a, if we’ll perform on it several(possibly zero) mirrorings. What minimum number of rows can such matrix contain?

Input

The first line contains two integers, n and m (1 ≤ n, m ≤ 100). Each of the next n lines contains m integers — the elements of matrix a. The i-th line contains integers ai1, ai2, …, aim (0 ≤ aij ≤ 1) — the i-th row of the matrix a.

Output

In the single line, print the answer to the problem — the minimum number of rows of matrix b.

Sample test(s)
input
4 3
0 0 1
1 1 0
1 1 0
0 0 1

output
2

input
3 3
0 0 0
0 0 0
0 0 0

output
3

input
8 1
0
1
1
0
0
1
1
0

output
2

Note

In the first test sample the answer is a 2 × 3 matrix b:

001
110

If we perform a mirroring operation with this matrix, we get the matrix a that is given in the input:

001
110
110
001


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int num[111][111];

int main ()
{
    int n,m;
    scanf ("%d%d",&n,&m);

    int i,k;

    for (i = 0;i < n;i++)
        for (k = 0;k < m;k++)
            scanf ("%d",&num[i][k]);

    int ans = n;a

    if (n % 2)
        printf ("%d\n",n);
    else
    {
        int tn = n;
        while (1)
        {
            int tf = 1;
            for (i = 0;i < tn / 2;i++)
                for (k = 0;k < m;k++)
                    if (num[i][k] != num[tn - 1 - i][k])
                        tf = 0;
            if (tf)
            {
                if (tn % 2)
                    break;
                tn /= 2;
            }else
            {
                //tn *= 2;
                break;
            }
        }
        printf ("%d\n",tn);
    }

    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109132.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月12日 下午11:00
下一篇 2021年9月13日 上午6:00


相关推荐

  • 可以连接服务器无法发送邮件 诛仙,诛仙管理员连接Gdeliveryd服务器发送邮件的Java实现…[通俗易懂]

    可以连接服务器无法发送邮件 诛仙,诛仙管理员连接Gdeliveryd服务器发送邮件的Java实现…[通俗易懂]诛仙管理员连接Gdeliveryd服务器发送邮件的Java实现2016-05-08·Mr.Xia4580次浏览连接Gdeliveryd服务器,可以通过Socket建立邮件信息,向角色发送带有物品装备的邮件,Socket是一个和语言无关的协议,大多数语言比如C/C++/PHP/VB等都支持Socket,这里使用Java实现,适用于诛仙2和诛仙3诛仙给角色发送物品装备邮件的代码,通过Socket连接…

    2022年7月19日
    18
  • Pycharm安装包(类库)的方法总结及解决包下载慢的问题

    Pycharm安装包(类库)的方法总结及解决包下载慢的问题1.在编译文本里面当你引用的包没有下载时,pycharm会自动用红色的灯泡来提示,这时,你直接点击红色灯泡,会出现一个下拉框,选择下载包的哪一项,pycharm就会自动下载,你没有安装的包。2.在有建立好的一个工程下:file-&amp;gt;Settings-&amp;gt;Project:(你已经建立好的工程名字)-&amp;gt;在这里面有两个选项,选项一:ProjectInterpreter(工程解释…

    2022年5月17日
    40
  • 黑盒测试可不只是点点点,这些5种测试工具也必须要会!

    黑盒测试可不只是点点点,这些5种测试工具也必须要会!对于不了解软件测试或者刚进行不久的人们来说 黑盒测试就是点点点 没有技术含量 但是我要说的 错 黑盒测试也是一项极具技术含量的工作

    2026年3月26日
    2
  • Skills:让 Claude 按需加载你的领域知识

    Skills:让 Claude 按需加载你的领域知识

    2026年3月14日
    4
  • 移动端touchmove卡顿

    网上提到的优化技术:1.window.requestAnimationFrame()  a.不用定义时间间隔,避免间隔长:卡顿,间隔短:浏览器漏帧的情况。由浏览器在绘制完一帧后自动再次调用绘制下一帧。2.transform3D代替transform3.增添惯性滑动效果,(不要小看惯性效果,效果会提升一个档次)。转载于:https://www.cnblogs.com/…

    2022年4月9日
    171
  • 11期 8月期刊自荐

    11期 8月期刊自荐11 期的小伙伴看过来 nbsp nbsp 我们把负责收集自荐的博客写到了 CSDN 里 希望大家在此篇博客的评论里 积极自荐自己的博客 nbsp nbsp 为了提高大家的积极性 我们评选优秀博客的方法升级为大家自荐博客 博客委员会当月负责人进行筛选 nbsp 自荐格式举例 自荐人 李鑫超自荐博客名称

    2026年3月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号