• 688A: Opponents


    Codeforces Round #360 Editorial [+ Challenges!]


    A. Opponents
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Arya has n opponents in the school. Each day he will fight with all opponents who are present this day. His opponents have some fighting plan that guarantees they will win, but implementing this plan requires presence of them all. That means if one day at least one of Arya's opponents is absent at the school, then Arya will beat all present opponents. Otherwise, if all opponents are present, then they will beat Arya.

    For each opponent Arya knows his schedule — whether or not he is going to present on each particular day. Tell him the maximum number of consecutive days that he will beat all present opponents.

    Note, that if some day there are no opponents present, Arya still considers he beats all the present opponents.

    Input

    The first line of the input contains two integers n and d (1 ≤ n, d ≤ 100) — the number of opponents and the number of days, respectively.

    The i-th of the following d lines contains a string of length n consisting of characters '0' and '1'. The j-th character of this string is '0' if the j-th opponent is going to be absent on the i-th day.

    Output

    Print the only integer — the maximum number of consecutive days that Arya will beat all present opponents.

    Examples
    Input
    2 2
    10
    00
    
    Output
    2
    
    Input
    4 1
    0100
    
    Output
    1
    
    Input
    4 5
    1101
    1111
    0110
    1011
    1111
    
    Output
    2
    
    Note

    In the first and the second samples, Arya will beat all present opponents each of the d days.

    In the third sample, Arya will beat his opponents on days 1, 3 and 4 and his opponents will beat him on days 2 and 5. Thus, the maximum number of consecutive winning days is 2, which happens on days 3 and 4.



    Solution

    Let's find out for each row of the given matrix if it is completely consisting of ones or not. Make another array canWin, and set canWini equal to one if the i-th row consists at least one zero. Then the problem is to find the maximum subsegment of canWin array, consisting only ones. It can be solved by finding for each element of canWin, the closest zero to it from left. The complexity of this solution is O(nd), but the limits allow you to solve the problem in O(nd2) by iterating over all possible subsegments and check if each one of them is full of ones or not.


    C++ code

    //     . .. ... .... ..... be name khoda ..... .... ... .. .     \
    
    #include <bits/stdc++.h>
    using namespace std;
    
    inline int in() { int x; scanf("%d", &x); return x; }
    const int N = 202;
    
    int a[N][N];
    
    int main()
    {
    	int n = in(), d = in();
    	int ans = 0, cur = 0;
    	for(int i = 0; i < d; i++)
    	{
    		string s;
    		cin >> s;
    		bool iff = 0;
    		for(int j = 0; j < n; j++)
    			iff |= (s[j] == '0');
    		if(iff)
    			cur++;
    		else
    			cur = 0;
    		ans = max(ans, cur);
    	}
    	cout << ans << endl;
    }

    Python code

    n, d = map(int, raw_input().split())
    cur = 0
    ans = 0
    for i in range(d):
        s = raw_input()
        if (s == '1' * n):
            cur = 0
        else:
            cur += 1
        ans = max(ans, cur)
    print ans

    原文链接:Codeforces Round #360 Editorial [+ Challenges!] - Codeforces


  • 相关阅读:
    通过JavaMail发送(群发)邮件示例(内含附件图片) 代码复制可用
    需要把获取系统的当前时间存入库里 获取时是String类型,库里是Datetime类型 String 转化 Date
    用canvas和原生js写的一个笨鸟先飞的小游戏(暂时只有一个关卡)
    Svg和canvas的区别,伪类选择器有哪些(归类)
    微信web网页动态增减输入框,搜索框,基于jQuery weui、jQuery 实现无限插入数据,动态数据生成,外加高德地图POI和根据坐标获取位置信息的页面
    vue 使用tinymce富文本编辑器
    mamp环境下navicat无法链接本地mysql
    tp5 系统变量输出
    开始项目注意事项
    jQuery weui实现下拉刷新事件
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564675.html
Copyright © 2020-2023  润新知