zoukankan      html  css  js  c++  java
  • CodeForces B. Creating the Contest

    http://codeforces.com/contest/1029/problem/B

    You are given a problemset consisting of nn problems. The difficulty of the ii-th problem is aiai. It is guaranteed that all difficulties are distinct and are given in the increasing order.

    You have to assemble the contest which consists of some problems of the given problemset. In other words, the contest you have to assemble should be a subset of problems (not necessary consecutive) of the given problemset. There is only one condition that should be satisfied: for each problem but the hardest one (the problem with the maximum difficulty) there should be a problem with the difficulty greater than the difficulty of this problem but not greater than twice the difficulty of this problem. In other words, let ai1,ai2,,aipai1,ai2,…,aip be the difficulties of the selected problems in increasing order. Then for each jj from 11 to p1p−1 aij+1aij2aij+1≤aij⋅2 should hold. It means that the contest consisting of only one problem is always valid.

    Among all contests satisfying the condition above you have to assemble one with the maximum number of problems. Your task is to find this number of problems.

    Input

    The first line of the input contains one integer nn (1n21051≤n≤2⋅105) — the number of problems in the problemset.

    The second line of the input contains nn integers a1,a2,,ana1,a2,…,an (1ai1091≤ai≤109) — difficulties of the problems. It is guaranteed that difficulties of the problems are distinct and are given in the increasing order.

    Output

    Print a single integer — maximum number of problems in the contest satisfying the condition in the problem statement.

    Examples
    input
    Copy
    10
    1 2 5 6 7 10 21 23 24 49
    output
    Copy
    4
    input
    Copy
    5
    2 10 50 110 250
    output
    Copy
    1
    input
    Copy
    6
    4 7 12 100 150 199
    output
    Copy
    3

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 200010;
    int N;
    int num[maxn];
    
    int main() {
        scanf("%d", &N);
        scanf("%d", &num[1]);
        int a = num[1];
        int ans = 0;
        int temp = 1;
        for(int i = 2; i <= N; i ++) {
            scanf("%d", &num[i]);
            if(2 * a >= num[i]) {
                ans = max(ans, i - temp);
            }
            else
                temp = i;
            a = num[i];
        }
        printf("%d
    ", ans + 1);
        return 0;
    }
    

      

  • 相关阅读:
    部分源码:Visual Studio 2019 C运行时库(CRT)部分源码
    反思:中国歌手和欧美歌手的比较
    lol:lol 10分钟前上路到线小兵107只
    OS:RPM包的通用命名规则(转载)
    OS: kali linux的安装和配置
    OS_linux:Systemd 文档
    visual studio 2019 插件安装(插件扩展名vsix)
    解决git合并冲突问题
    nodejs封装的MongoDB的增删改查方法
    vue项目中购物车的全选功能的实现
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9822798.html
Copyright © 2011-2022 走看看