Codeforces 895B (stl binary search)

来源:互联网 发布:淘宝店铺会员怎么取消 编辑:程序博客网 时间:2024/06/02 02:16

想好左右界,以及边界可以整除的情况。
注意,左界可能存在小于ai的情况,这种是不合法的。

/** 20171128*/#include <cstdio>#include <algorithm>using namespace std;#define maxn 100010int n;long long x,k;long long num[maxn];int main(){    scanf("%d%I64d%I64d",&n,&x,&k);    for(int i=0;i<n;i++) scanf("%I64d",&num[i]);    sort(num,num+n);    long long ans = 0;    for(int i=0;i<n;i++)    {        long long t = num[i]%x;        long long left,right;        if(t==0)        {            left = max(num[i],num[i]+k*x-x);            right = num[i]+k*x;        }else        {            left = max(num[i],num[i]+k*x-t);            right = num[i]+k*x+x-t;        }        ans+=(lower_bound(num,num+n,right)-lower_bound(num,num+n,left));    }    printf("%I64d\n",ans);    return 0;}  
原创粉丝点击