https://codeforces.com/contest/1538/problem/C
C 又忘记使用lower_bound()和upper_bound() 1.统计l-a[i]
和r-a[i]
的个数,对于每a[i]进行累加。 2. lower_bound找到第一个大于等于l-a[i]
的坐标; upper_bound找到第一个大于r-a[i]
的坐标; 两者做差,正好为满足条件的个数。
#include
using namespace std;
typedef long long ll;
const int maxn=2e5+5;
int a[maxn];
int main()
{
int t;cin>>t;
while(t--)
{
int n,l,r;
cin>>n>>l>>r;
for(int i=0;i>a[i];
sort(a,a+n);
ll sum=0;
for(int i=0;i>b>>k;
if(k==1&&(a%b==0||b%a==0)&&a!=b)
{
cout
关注
打赏