zoukankan      html  css  js  c++  java
  • PAT 1060 爱丁顿数

    https://pintia.cn/problem-sets/994805260223102976/problems/994805269312159744

    英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E英里的最大整数 E。据说爱丁顿自己的 E 等于87。

    现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤)。

    输入格式:

    输入第一行给出一个正整数 N (≤),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。

    输出格式:

    在一行中给出 N 天的爱丁顿数。

    输入样例:

    10
    6 7 6 9 3 10 8 2 7 8
    

    输出样例:

    6

    代码:
    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 1e5 + 10;
    long long a[maxn];
    
    int main() {
        int n;
        scanf("%d", &n);
        for(int i = 1; i <= n; i ++)
            scanf("%lld", &a[i]);
        sort(a + 1, a + 1 + n);
    
    
            for(int i = n; i >= 1; i --) {
                int L = 1, R = n, pos = -1;
                while(L <= R) {
                    int mid = (L + R) / 2;
                    if(a[mid] > 1LL * i) R = mid - 1, pos = mid;
                    else L = mid + 1;
                }
    
                if(pos == -1) continue;
                if(n - pos + 1 >= i) {
                    printf("%d
    ", i);
                    return 0;
                }
            }
            printf("0
    ");
    
        return 0;
    }
    

      

  • 相关阅读:
    dbgrideh标题排序
    ctrl r w 去掉
    c# 中@ 的三种用法
    vs插件
    oracle查看会话(常规操作)
    3 docker容器
    k8s-组件
    k8s-常见错误
    k8s监控-kube-prometheus
    helm-私有仓库
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9410823.html
Copyright © 2011-2022 走看看