题目说了,每组数不同,并且 $x\bmod y$ 也不出现在数组 $a$ 中,那么我们可以对数组进行排序,因为 $a\bmod b$ 得出的结果是一定比 $b$ 小的。那么拿数组的其他数分别去取模最小的数,那么得出的结果一定比数组最小的数还小,则一定不可能出现在数组 $a$ 之内。

简单解释一下这个数据:

6
2 7 5 3 4 8

按我的思路,则会排序成以下数组:

$[2,3,4,5,7,8]$。

$3\bmod2$ 不在数组 $a$ 中,

$4\bmod2$ 不在数组 $a$ 中,

$5\bmod2$ 不在数组 $a$ 中,

$7\bmod2$ 不在数组 $a$ 中,

$8\bmod2$ 不在数组 $a$ 中。

贴代码:

void solve()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++) 
    {
        cin>>a[i];
    }
    sort(a,a+n);
    for(int i=0;i<n/2;i++)//n/2组数据即可 
    {
        cout<<a[n-i-1]<<" "<<a[0]<<endl;//分别输出x与y,注意顺序,必须x在前y在后 
    }
}

多组数据,代码未全,当心踩坑。

最后修改:2023 年 04 月 20 日
v我50吃疯狂星期四