游客 Signup | Login
中文 | En

2301 - 洛神

“仿佛兮若轻云之闭月,飘飘兮若流风之回雪”---《洛神赋》

   HJY是个三国杀迷(卡牌类游戏),连做梦都会梦到在杀。一天晚上,他又在梦里打三国杀了,他最喜欢的一个武将是甄姬,因为她有个强大的技能,就是洛神。这个技能是在牌堆摸牌的时候可以把连续摸到的黑色牌拿走,如果摸到红色的牌就停止摸牌(这张红色的牌不能拿走),牌堆中只有黑色,红色这两种颜色的牌。由于在梦中,HJY通过意念知道了牌堆里的所有牌,而且他可以从牌堆的任何地方开始摸牌。现在,他想发动这个技能一次摸最多的牌,请机智的各位帮帮他吧!

Input

第一行一个整数T,表示有T组数据。每组数据有一个数n(1<=n<=100),代表牌的数量,然后接着有n个数(0或1),表示有n张牌,0代表红色,1代表黑色。

Output

对于每组数据,答案单独输出一行,为摸牌能摸到最多的牌的数量。

Examples

Input

3
2
1 0
2
0 0
3
1 1 1

Output

1
0
3

Solution C

#include<stdio.h>
int main()
{
	int max,s,a[101],t,n,i;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		for(i=0;i<n;i++)
			scanf("%d",&a[i]);
		s=0;
		max=0;
		for(i=0;i<n;i++)
		{
			if(a[i]==1)
				s++;
			else
			{
				if(s>max)
					max=s;
				s=0;
			}				
		}
		if(a[n-1]==1&&s>max)
			max=s;
		printf("%d\n",max);
	}
}

Solution C++

//{{{-------------------head file-------------------//
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <set>
#include <map>
#include <list>
#include <cmath>
#include <stack>
#include <queue>
#include <string>
#include <vector>
#include <bitset>
#include <cstdio>
#include <cassert>
#include <climits>
#include <cstring>
#include <numeric>
#include <iostream>
#include <algorithm>
#define  pb push_back
#define  mp make_pair
#define  inst insert
#define  se second
#define  fi first
#define  sz(x) ((int)(x).size())
#define  ForEach(i,c) for(__typeof((c).begin()) i = (c).begin();i != (c).end();i++)
using namespace std;

typedef long long LL;
typedef vector<int> VI;
typedef pair<int, int> PII;
//}}}------------------end line--------------------//


int main() {
	int T, n;
	cin >> T;
	while(T--) {
		cin >> n;
		vector<int> v(n);
		for(int i = 0; i < n; i++)
			cin >> v[i];
		int len = v[0], ans = v[0];
		for(int i = 1; i < n; i++) {
			if(v[i] == 1) {
				len++;
				ans = max(ans, len);
			} else {
				len = 0;	
			}
		}
		cout << ans << endl;
	}
    return 0;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题