10 条题解

  • -1
    @ 2024-7-27 9:00:59

    S1A 题解

    第四篇题解。

    此题是构造题。因为序列的单调递增序列一定包含了这个序列的所有元素,所以我们这个序列剩下的一定是重复的元素,又因为重复的元素不影响数字的种类,所以我们把它们放在后面输出。首先判断无解的情况,然后构造序列的单调递增序列并输出,接着将剩下的元素输出即可。

    代码:

    #include<iostream>
    using namespace std;
    int a[100001];
    int main()
    {
        int n,t=0;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            int b;
            cin>>b;
            a[b]++;
            if(a[b]==1)t++;
        }
        if(t%2)cout<<-1;
        else
        {
            for(int i=1;i<=n;i++)if(a[i])a[i]--,cout<<i<<' ';
            for(int i=1;i<=n;i++)while(a[i]--)cout<<i<<' ';
        }
        return 0;
    }
    

    信息

    ID
    2
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    442
    已通过
    192
    上传者