最长连签
内存限制: 256 Mb时间限制: 1000 ms
题目描述
Bob 和 Bella 在一个 OJ 平台上练习题目。该平台提供一个“签到”功能:如果某用户在某一天解决了至少一个问题,则该用户在这一天的签到成功。连续签到是指在连续的若干天内,用户每天都成功签到。
现在,已统计了连续 nn 天里 Bob 和 Bella 每天的做题情况,即两人每天分别解决的题目数量。请你找出 Bob 和 Bella 中谁的最长连续签到天数更长,或者报告他们的最长连续签到天数相同。
输入格式
第一行一个整数 TT 表示数据组数。对于每组数据:
第一行一个整数 nn 表示天数。
第二行 nn 个整数 a_{1\sim n}a1∼n,其中 a_iai 表示 Bob 在第 ii 天通过的题目数量。
第三行 nn 个整数 b_{1\sim n}b1∼n,其中 b_ibi 表示 Bella 在第 ii 天通过的题目数量。
输出格式
对于每组数据,如果 Bob 的最长连签天数更大,输出一行 Bob
;如果 Bella 的最长连签天数更大,输出一行 Bella
;否则两人平局,输出一行 Draw
。
数据范围
对于 30\%30% 的数据,1\leq \sum n\leq 101≤∑n≤10。
对于 60\%60% 的数据,1\leq \sum n\leq 10001≤∑n≤1000。
对于 100\%100% 的数据,1\leq T\leq 10^51≤T≤105,1\leq \sum n\leq 10^51≤∑n≤105,0\leq a_i,b_i\leq 10^90≤ai,bi≤109,其中 \sum n∑n 表示单个测试点里所有 nn 的和。
样例数据
输入:
3 | |||||
6 | |||||
1 | 7 | 3 | 0 | 2 | 13 |
0 | 2 | 3 | 4 | 5 | 0 |
3 | |||||
1 | 3 | 4 | |||
3 | 1 | 2 | |||
5 | |||||
1 | 2 | 3 | 0 | 1 | |
1 | 2 | 0 | 2 | 3 |
输出:
Bella |
Draw |
Bob |
还是大水题!!!for循环+if语句
#include<bits/stdc++.h>
using namespace std;
int n,a[100005],b[100005],cnt=0,ans=0;
int main(){
int t;
cin>>t;
while(t--){
cin>>n;
cnt=ans=0;
int c=0,d=0;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>0)c++;
else{
cnt=max(cnt,c);
c=0;
}
}
cnt=max(cnt,c);
for(int i=1;i<=n;i++){
cin>>b[i];
if(b[i]>0)d++;
else{
ans=max(ans,d);
d=0;
}
}
ans=max(ans,d);
if(cnt>ans)cout<<"Bob";
else if(ans>cnt)cout<<"Bella";
else cout<<"Draw";
cout<<'\n';
}
return 0;
}