• Codeforces-688A Opponents


    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 13 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.

    题目大意:

    题目说的就是一个人,有n个对手,当n个对手都出席的时候,这个人被打败,一旦有人没出席,这个人就会打败所有人,问你d天他有多少天是连续打败所有人的。

    解法:

    比较水= =就直接上代码了。

    #include <cstdio>
    #include <cstring>
    using namespace std;
    const int maxn = 100 + 5;
    int main()
    {
    	int n, d, ans = 0, tmp = 0;
    	scanf("%d%d", &n, &d);
    	for(int i = 0; i < d; ++i){
    		char str[maxn] = {0};
    		scanf(" %s", str);
    		bool flag = false;
    		for(int j = 0; j < n; ++j){
    			if(str[j] == '0') {
    				flag = true;
    				break;
    			}
    		}
    		if(flag){
    			tmp ++;
    		}else{
    			tmp = 0;
    		}
    		if(tmp > ans) ans = tmp;
    	}
    	printf("%d
    ", ans);
    	return 0;
    }


  • 相关阅读:
    十分钟学会Java8:lambda表达式和Stream API
    史上最全的Spring Boot Cache使用与整合
    史上最全的Spring Boot Starter开发手册
    深入理解JAVA虚拟机(内存模型+GC算法+JVM调优)
    深入理解Mybatis技术与原理
    c++入门之命名空间存在的意义
    机器学习第一篇——最近邻kNN
    Python学习第十八篇——低耦合函数设计思想
    Python学习第十六篇——异常处理
    Python学习第十五篇——类继承和类实例化
  • 原文地址:https://www.cnblogs.com/wiklvrain/p/8179473.html
Copyright © 2020-2023  润新知