早锻炼
【问题描述】
每天早晨,John带着奶牛们到木棚外面去早锻炼(为了让奶牛多产牛奶)。奶牛们将被分成同样长的两排。John已经准备了一条2n(1<=n<=100)的空地作为早锻炼的场地。将这块场地想象成2n个方格。当John以为万事俱备的时候,他发现场地中有的格子里种着树,当然奶牛不能站在树上。
早操的队伍必须紧紧地连在一起,所以John就不能使用空地中的某些部分了。所以John就不得不把牛群分割成若干个2x部分,每次带一个部分去锻炼。John想知道每次最多能带几头牛,当然这些牛占的位置一定是2k格(k<=n)。
【输入】
第一行:一个整数N
第2..N+1行:每行有两个用空格隔开的整数组成描述了1*2个的地形。如果这一格有树则为1,如果这一格为平地则为0。
【输出】
仅一行:一个整数即一次最多能带入几头牛。
【输入样例】
7
0 0
1 0
1 1
0 0
0 0
0 0
0 1
【输出样例】
6
【样例说明】
这是一个27的地形图。
没有树的最大空间为23,所以一次最多可带入2*3=6头牛。
【代码】
#include <bits/stdc++.h>
using namespace std;
template<typename T>inline void read(T &FF){
T RR=1;FF=0;char CH=getchar();
for(;!isdigit(CH);CH=getchar())if(CH=='-')RR=-1;
for(;isdigit(CH);CH=getchar())FF=(FF<<1)+(FF<<3)+(CH^48);
FF*=RR;
}
template<typename T>void write(T x){
if(x<0)putchar('-'),x*=-1;
if(x>9)write(x/10);
putchar(x%10+48);
}
int main(){
int n,ans=0,s=0;
read(n);
for(int i=1;i<=n;i++){
int x,y;
read(x);read(y);
if(x+y==0)s++;
else s=0;
ans=max(ans,s);
}cout<<ans*2;
return 0;
}