C. Multi-judge Solving

写这个题的时候也是思维出了漏洞....容易漏掉的一点就是在别的 oj 上做了题之后可能不能够马上回原来的 oj 上做题,这是写循环的时候需要注意的的方,需要嵌套一个 while 进去。

代码:

// Created by CAD on 2019/8/6.
#include <bits/stdc++.h>

#define ll long long
#define fi first
#define se second
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f
#define PII pair<int,int>
#define PIII pair<pair<int,int>,int>
#define mst(name, value) memset(name,value,sizeof(name))
#define FOPEN freopen("C:\\Users\\14016\\Desktop\\cad.txt","r",stdin)
#define test(n) cout<<n<<endl
using namespace std;
ll n,k;
const int maxn=1005;
ll a[maxn];
int main()
{
    ios::sync_with_stdio(false);
    cin>>n>>k;
    for(int i=1;i<=n;++i) cin>>a[i];
    sort(a+1,a+n+1);
    int cnt=0;
    for(int i=1;i<=n;i++)
    {
        if(2*k>=a[i]&&a[i]>k) k=a[i];
        while(2*k<a[i]) cnt++,k=2*k;
        k=max(k,a[i]);
    }
    cout<<cnt<<endl;
    return 0;
}