92 #4WA 求调QAQ实在想不到了
  • 板块P1102 A-B 数对
  • 楼主yujj58
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/11/19 08:58
  • 上次更新2024/11/19 15:25:19
查看原帖
92 #4WA 求调QAQ实在想不到了
1574726
yujj58楼主2024/11/19 08:58
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node { long long tim; long long value; };
long long num[200500] = { 0 };
#define hash(x) (((x)%(1000003)+1000003)%1000003)
struct node map[1000003];
int main()
{
	long long j = 0,count=0;
	long long n, c;
	for (long long k = 0; k < 1000003; k++)
	{
		map[k].tim = 0;
		map[k].value = 0;
	}
	scanf("%lld %lld", &n, &c);
	getchar();
	for (long long i = 0; i < n; i++)
	{
		long long temp;
		scanf("%lld", &temp);
		num[i] = temp;
		long long tex = hash(temp);
		getchar();
			while (map[tex].value != 0 && map[tex].value != temp)
			{
				tex++;
				while (temp >= 1000003)
					temp %= 1000003;

			}
			if (map[tex].value == temp)
			{

				map[tex].tim++;
			}
			else {
				map[tex].value = temp;
				map[tex].tim++;

			}
	}
	for (long long i = 0; i < n; i++)
	{
			long long fan = num[i] - c;
			if (fan <= 0)
				continue;
			long long temp = fan;
			fan = hash(fan);
			while (map[fan].value != 0&&map[fan].value!=temp)
			{
				fan++;
				while (fan >= 1000003)
					fan %= 1000003;
				
			}
			if(map[fan].value==temp&&map[fan].tim>=0)
				count += map[fan].tim;
	}
	printf("%lld", count);
}
2024/11/19 08:58
加载中...