Codeforces Round #360 A 简单模拟
2016-09-05 20:10
337 查看
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
output
input
output
input
output
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 and4.
题目大意:
输入n个敌人和d天,如果存在0,则说明Arya赢了,让输出Arya连续赢的最多天数。
这个题思路还是挺简单的,简单模拟就行~
代码实现:
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<cmath>
#include<algorithm>
#include<string>
#include<string.h>
using namespace std;
char a[105][105]; //定义为字符形式
int main() {
int o, d;
while (scanf("%d%d", &o, &d) != EOF) {
for (int i = 0; i < d; i++) {
scanf("%s", &a[i]); //用字符串的形式输入
}
int ans=0;
int cnt=0; //记录连续赢的次数
for (int i = 0; i < d; i++) {
int flag = 0;
for (int j = 0; j < o; j++) {
if (a[i][j] == '0') {
cnt++;
flag = 1; //如果赢了,标记为1
break;
}
}
if (flag == 1) {
ans = max(ans, cnt); //不断更新连续赢的次数,找出最大的那个
}
else
cnt = 0; //如果遇到没有赢,一定想着要把cnt变成0,从0开始记录连续赢的次数
}
printf("%d\n", ans);
}
return 0;
}
Where there is a will, there is a way~Fighting together!!
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
110111110110
10111111
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 and4.
题目大意:
输入n个敌人和d天,如果存在0,则说明Arya赢了,让输出Arya连续赢的最多天数。
这个题思路还是挺简单的,简单模拟就行~
代码实现:
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<cmath>
#include<algorithm>
#include<string>
#include<string.h>
using namespace std;
char a[105][105]; //定义为字符形式
int main() {
int o, d;
while (scanf("%d%d", &o, &d) != EOF) {
for (int i = 0; i < d; i++) {
scanf("%s", &a[i]); //用字符串的形式输入
}
int ans=0;
int cnt=0; //记录连续赢的次数
for (int i = 0; i < d; i++) {
int flag = 0;
for (int j = 0; j < o; j++) {
if (a[i][j] == '0') {
cnt++;
flag = 1; //如果赢了,标记为1
break;
}
}
if (flag == 1) {
ans = max(ans, cnt); //不断更新连续赢的次数,找出最大的那个
}
else
cnt = 0; //如果遇到没有赢,一定想着要把cnt变成0,从0开始记录连续赢的次数
}
printf("%d\n", ans);
}
return 0;
}
Where there is a will, there is a way~Fighting together!!
相关文章推荐
- Codeforces Round #197 (Div. 2)
- Codeforces Round #198 (Div. 1)
- Codeforces 405E Codeforces Round #238 (Div. 2)E
- Codeforces 407C Codeforces Round #239 (Div. 1)C
- Codeforces Educational Codeforces Round 16 部分题解
- 【WHUST 2016 Individual Contest #1】解题报告
- 【WHUST 2016 Individual Contest #2】解题报告
- 【WHUST 2016 Individual Contest #3 】解题报告
- CodeForces 449A - Jzzhu and Chocolate
- CodeForces 449 B. Jzzhu and Cities
- codeforces 618C. Constellation
- Codeforces Round #349 (Div. 2) - C
- Codeforces Round #361 (Div. 2)
- 7.13Codeforces Round #360 (Div. 2)
- Codeforces Round #363 (Div. 2)
- Codeforces Round #265 (Div. 2)
- A.Bus to Udayland
- codeforces 1B Spreadsheets
- Codeforces #310 div2 C. Case of Matryoshkas
- Codeforces Round #364 vp