题目背景

woshiren在洛谷刷题,感觉第一题:求两数的和(A+B Problem)太无聊了,于是增加了一题:A-B Problem,难倒了一群小朋友,哈哈。

题目描述

给出N 个从小到大排好序的整数,一个差值C,要求在这N个整数中找两个数A 和B,使得A-B=C,问这样的方案有多少种?

例如:N=5,C=2,5 个整数是:2 2 4 8 10。答案是3。具体方案:第3 个数减第1 个数;第3 个数减第2 个数;第5 个数减第4 个数。

输入输出格式

输入格式:

第一行2 个正整数:N,C。

第二行N 个整数:已经有序。注意:可能有相同的。

输出格式:

一个整数,表示该串数中包含的所有满足A-B=C 的数对的方案数。

输入输出样例

输入样例#1: 复制

4 1
1 1 2 2
输出样例#1: 复制

4

说明

对于50% 的数据:N 的范围是[1…1,000]。

对于另外50% 的数据:N 的范围是[1…100,000]。

对于100% 的数据:C 的范围是[1…1,000,000,000],N 个整数中每个数的范围是:[0…1,000,000,000]。

模拟

#include<map>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 200100
#define ll long long
using namespace std;
map<int,int>m;
ll n,c,ans,a[N],maxn;
ll read()
{
    ll x=,f=; char ch=getchar();
    ;ch=getchar();}
    +ch-',ch=getchar();
    return x*f;
}
int main()
{
    n=read(),c=read();
    ;i<=n;i++)
     a[i]=read(),m[a[i]]++;
    sort(a+,a++n);
    ;i<=n;i++)
     ans+=m[a[i]+c];
    printf("%lld",ans);
    ;
}

最新文章

  1. ENode 1.0 - 框架的总体目标
  2. mysql中变量赋值
  3. c#中关键词out和ref的区别
  4. wireshark如何过滤 http数据包
  5. Java基础之读文件——使用通道读取混合数据2(ReadPrimesMixedData2)
  6. How to use HaploView
  7. 从scanf的学习接口设计
  8. linux上备份Oracle时EXP-00091的错误解决方法
  9. 积累的VC编程小技巧之编辑框
  10. C#调用winhttp组件 POST登录迅雷
  11. C Primer Plus 第9章 函数 编程练习
  12. BOM 浏览器对象模型_XMLHttpRequest 对象
  13. 堆叠式降噪自动编码器(SDA)
  14. Django 自带登录验证:authenticate和login,login_require,logout模块
  15. sass变量引入全局
  16. 微信 小程序组件 加入购物车全套 one js
  17. android的logcat详细用法!
  18. js和java判断值为空的方式
  19. 使用Scala
  20. slot的使用

热门文章

  1. Problem Collection I 位运算
  2. Codeforces Round #534 (Div. 2) D. Game with modulo(取余性质+二分)
  3. bzoj 1088 DP
  4. es查询格式
  5. cygwin与vim配置
  6. kuangbin带你飞 生成树专题 : 次小生成树; 最小树形图;生成树计数
  7. Linux指令详解useradd groupadd passwd chpasswd chage 密码修改
  8. mysql索引语法及示例
  9. jquery发送json请求,给springmvc接收
  10. [ Openstack ] Openstack-Mitaka 高可用之 计算服务(Nova)