求助:A题只过了三分之一

#include<bits/stdc++.h>

using namespace std;

const int N = 1e5+10;

typedef long long ll;

ll arr[N];

vector<ll> all;

struct Q

{

ll wz;

int val;

}x[N];

int find(ll x)

{

return lower_bound(all.begin(),all.end(),x)-all.begin()+1;

}

int main()

{

ll a,b,c;

cin>>a>>b>>c;

int n; cin>>n;

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

{

ll wz; cin>>wz;

all.push_back(wz);

x[i].wz=wz;

x[i].val=1;

}

sort(all.begin(),all.end());

all.erase(unique(all.begin(),all.end()),all.end());

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

{

int y=find(x[i].wz);

arr[y]+=x[i].val;

}

for(int i=1;i<=all.size();i++)

{

arr[i]+=arr[i-1];

}

int l=find(b);

int r=find(c-1);

int num=arr[r]-arr[l];

cout<<num;

return 0;

}

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务