Codeforces 1029B-Creating the Contest

曾经终败给现在 2022-05-15 07:16 223阅读 0赞
  • Codeforces 1029B-Creating the Contest


  • 题目链接:

B. Creating the Contest

  • 思路:

题目大意:

给一个长度为n的严格递增序列,求长度p,使得满足在该范围内的子数组 S,有 2*Si >= Si+1

题解:

定义个计数器Cnt,如果满足条件就+1,否则置1(因为最短长度k为1),顺便记录最大的Cnt

Max_num必须初始为1,一组样例:2 10 50 110 250,Cnt在该样例下没有改变,所以没记录最值维持初态

  • 代码:

    include

    include

    include

    using namespace std;
    int main()
    {

    1. int n;
    2. int Difficulties;
    3. int Max_num=1;
    4. int Pre;
    5. int Cnt=1;
    6. cin>>n;
    7. cin>>Pre;
    8. for(int i=0;i<n-1;i++)
    9. {
    10. scanf("%d",&Difficulties);
    11. if(Difficulties<=2*Pre)
    12. {
    13. Cnt++;
    14. Max_num=max(Cnt,Max_num);
    15. }
    16. else
    17. Cnt=1;
    18. Pre=Difficulties;
    19. }
    20. if(Max_num==-1)
    21. cout<<"1"<<endl;
    22. else
    23. cout<<Max_num<<endl;
    24. return 0;

    }

发表评论

表情:
评论列表 (有 0 条评论,223人围观)

还没有评论,来说两句吧...

相关阅读