帮皮皮选人
链接:https://ac.nowcoder.com/acm/contest/635/B
来源:牛客网
帮皮皮选人
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
高考已经开始倒计时了,学校为了减轻大家的压力,决定要举办一个大型的晚会,要求每个班都必须出一个节目。经过投票,高二六班决定出演一个舞蹈节目。为了让这个舞蹈节目效果看起来更好,对同学们的舞蹈技能有一定的要求,假设参演同学的舞蹈技能值递增排序为a1,a2,…am,如果每一个 i (1 <= i <= m-1)都满足 ai+1<=2∗ai,这就可以达到最完美的演出效果。皮皮是高二六班的班长,他现在要汇报班上的参演人数,他想让班上尽可能多的人去参加这个节目,但是他不知道怎么办。
于是他就找到了你,他告诉你班上的总人数和所有人的舞蹈技能值,他希望你能够告诉他,在保证舞蹈节目的演出最完美的情况下,最多可以派多少人出去。
输入描述:
第一行输入一个整数n(1<= n <=2*105),代表皮皮班上的总人数。
第二行输入n个整数,a1,a2,…,an(1 <= ai <= 109),代表皮皮班所有人从低到高排序的舞蹈技能值,保证皮皮班每个人的舞蹈技能值都是独一无二的。
输出描述:
输入一个整数,代表在保证舞蹈节目的演出最完美的情况下,皮皮班上能参演这个节目的最多人数。
示例2
输出
复制3
#include<cstdio> #include<algorithm> using namespace std; int n,a,b,sum,maxx; int main(){ sum=1; maxx=-0x3f3f3f3f; scanf("%d%d",&n,&a); if(n==1){ maxx=1; } for(int i=2;i<=n;i++){ scanf("%d",&b); if(2*a>=b){ a=b; sum++; }else{ a=b; sum=1; } maxx=max(maxx,sum); } printf("%d\n",maxx); return 0; }