列表

详情


NC15842. Anxdada的询问2

描述

Anxdada说: "题目标题里面怎么没有我的名字!"
所以fold连夜补充了这样一个题目:
Anxdada有一个长度为n的数组, 其中包含n个整数: a[1], a[2], ……, a[n] (下标从1开始)
fold说了一个整数m
Anxdada想知道, 其中有多少个整数对(i,j)满足1≤i<j≤n, 使得: a[i]和a[j]的平均数等于m

输入描述

第一行包含2个整数n, m, 分别代表数组的长度和fold所说的数字
第二行包含n个整数, 代表数组中的元素a[1], a[2], ……, a[n]

输出描述

输出一个整数, 代表满足题目要求的整数对的个数

示例1

输入:

5 -1
3 4 -5 1 -6

输出:

2

说明:

存在2个这样的整数对: (1,3)与(2,5)
1.a[1]与a[3]的平均数等于-1
2.a[2]与a[5]的平均数等于-1

示例2

输入:

3 19260817
19980227 19980420 5201314

输出:

0

说明:

不存在任何一个整数对(i,j)满足题目的要求

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 1166ms, 内存消耗: 63080K, 提交时间: 2018-05-07 22:02:29

#include<cstdio>
#include<map>
using namespace std;
#define maxn 1000000009
map<long long,int>a;
int main(){
	int n,m;
	scanf("%d%d",&n,&m);
	long long ans=0;
	for(int i=0;i<n;i++){
		int c;
		scanf("%d",&c);
		ans+=a[2*m-c];
		a[c]++;
	}
	printf("%lld\n",ans);
	return 0;
}

上一题