有没有大佬帮忙看看怎么优化下
查看原帖
有没有大佬帮忙看看怎么优化下
1058082
outadaoki楼主2024/12/1 18:15
#include<bits/stdc++.h>
#define int long long

using namespace std;

const int N = 1e7 + 5;

int read()
{
	char ch = getchar();
	int x = 0 , f = 1;
	while(ch < '0' || ch > '9')
	{
		if(ch == '-') f = -1;
		ch = getchar();
	}
	while(ch >= '0' && ch <= '9')
	{
		x = x * 10 + ch - '0' , ch = getchar();
	}
	return x * f;
}

struct point
{
	int num , size;
}t[N];

int n = read() , c = read() , a[N] , ans = 0 , x = 1;

main()
{
	for(int i = 1 ; i <= n ; i ++)
	{
		a[i] = read();
	}
	sort(a + 1 , a + n + 1);
	for(int i = 1 ; i <= n ; i ++)
	{
		if(a[i] == a[i - 1])
		{
			t[x].num ++;
		}
		else
		{
			t[++ x].size = a[i];
			t[x].num = 1;
		}
	}
	for(int i = 1 ; i < x ; i ++)
	{
		for(int j = i + 1 ; j <= x ; j ++)
		{
			if(t[j].size - t[i].size == c) ans += t[i].num * t[j].num;
		}
	}
	cout << ans;
	return 0;
}
2024/12/1 18:15
加载中...