求调试,玄关
查看原帖
求调试,玄关
384690
AaronHuangZeYuan楼主2023/8/19 10:47
#include<iostream>
#include<cstring>
int pos_min[100005], pos_max[100005];
int main()
{
	int n, k, ans = -1;
	std::cin >> n >> k;
	memset ( pos_min, 127, sizeof ( pos_min ) );
	memset ( pos_max, -1, sizeof ( pos_max ) );
	
	for ( int i = 1; i <= n; i++ )
	{
		int x;
		std::cin >> x;
		pos_max[x] = std::max ( pos_max[x], i );
		pos_min[x] = std::min ( pos_min[x], i );
	}
	
	for ( int i = 1; i <= n - k; i++ )
	{
		if ( pos_max[i + k] != pos_max[0] && pos_min[i] != pos_min[0] )
			ans = std::max ( ans, pos_max[i + k] - pos_min[i], ans );
	}
	
	std::cout << ans;
	return 0;
}

题目大意:

数对

题目描述

给定一个长度为 nn 的数组,其中第 ii 个数字为 aia_i。如果两个数字的差值刚好为 kk,我们称这两个数字是一组“好数对”。

现在你需要找到所有“好数对”中距离相差最大的那一对的距离。

距离指的是两个数字在数组中的位置之差的绝对值。例如 aia_i 和 aja_j 的距离为 ∣i−j∣|i-j|,其中 ∣x∣|x| 为 xx 的绝对值。

保证给定数组中至少存在一个好数对。

报错: [错误] '__comp' cannot be used as a function

2023/8/19 10:47
加载中...