#20619: 誰能幫我看哪裡錯了NA(40%)


Easonsfriend (去寫./Problems?ownerid=89827)

學校 : 不指定學校
編號 : 89827
來源 : [118.150.14.175]
最後登入時間 :
2024-11-10 22:39:18
a450. 棒棒糖比身高 -- 從其他題目中突發奇想~ | From: [106.105.188.90] | 發表日期 : 2020-02-12 23:49

#include<iostream>

#include<algorithm>

using namespace std;

 

int main(){

    ios::sync_with_stdio(false);cin.tie(0);

    int n,q;

    cin>>n>>q;

    long long a[n];

    for(int i=0;i<n;i++)

        cin>>a[i];

    sort(a,a+n);

    while(q--){

        long long s,b,c=0,d=0,sum=0;

        cin>>s>>b;

        if(s<a[0])sum++;

        if(b>=a[n-1])sum++;

        if(b<a[0])sum--;

        if(s>a[n-1])sum--;

        int l=0,r=n-1;

        while(l!=r){

            if(s>a[(l+r)/2]){

                l=(l+r)/2;

            }

            if(s<a[(l+r)/2]){

                r=(l+r)/2;

            }

            if(s==a[(l+r)/2]){

                c=(l+r)/2;

                break;

            }

            if(l+1==r){

                c=r;

                break;

            }

        }

        

        l=0;

        r=n-1;

        while(l!=r){

            if(b>a[(l+r)/2]){

                l=(l+r)/2;

            }

            if(b<a[(l+r)/2]){

                r=(l+r)/2;

            }

            if(b==a[(l+r)/2]){

                d=(l+r)/2;

                break;

            }

            if(l+1==r){

                d=l;

                break;

            }

        }

        if(d-c+sum+1==0)cout<<"The candies are too short\n";

        else cout<<d-c+sum+1<<'\n';

    }

    

}

 
ZeroJudge Forum