8672 2024. 01. 25 06:51:55 BenedekMarton Kombináció (50) cpp17 Elfogadva 50/50 3ms 3940 KiB
#include <iostream>

using namespace std;

int main()
{
    int n, m;
    cin >> n >> m;
    int a[m], x=-1, k;
    for(int i=0; i<m; i++)
    {
        cin >> a[i];
    }
    if(a[0]==n-m+1)
    {
        a[0]=max(n-m, 1);
        for(int i=0; i<m; i++)
        {
            cout << a[i] << " ";
        }
        cout << endl;
        for(int i=1; i<=m; i++)
        {
            cout << i << " ";
        }
    }
    else if(a[m-1]==m)
    {
        for(int i=n-m+1; i<=n; i++)
        {
            cout << i << " ";
        }
        cout << endl;
        a[m-1]=min(m+1, n);
        for(int i=0; i<m; i++)
        {
            cout << a[i] << " ";
        }
    }
    else
    {
        for(int i=m-1; i>=0 and x==-1; i--)
        {
            if(a[i]-a[i-1]>1)
            {
                x=i;
            }
        }
        for(int i=0; i<m; i++)
        {
            if(i<x)
            {
                cout << a[i] << " ";
            }
            else if(i==x)
            {
                k=a[i]-1;
                cout << k << " ";
            }
            else
            {
                k=n-m+i+1;
                cout << k << " ";
            }
        }
        cout << endl;
        x=-1;
        for(int i=m-1; i>=0 and x==-1; i--)
        {
            if(i==m-1)
            {
                if(a[i]!=n)
                {
                    x=i;
                }
            }
            else
            {
                if(a[i+1]-a[i]>1)
                {
                    x=i;
                }
            }
            /*if((a[i]!=n and i==m-1) or a[i+1]-a[i]>1)
            {
                x=i;
            }*/
        }
        for(int i=0; i<m; i++)
        {
            if(x>i)
            {
                cout << a[i] << " ";
            }
            else if(x==i)
            {
                cout << a[i]+1 << " ";
                k=a[i]+1;
            }
            else
            {
                k++;
                cout << k << " ";
            }
        }
    }
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1872 KiB
2 Elfogadva 0/0 3ms 2120 KiB
3 Elfogadva 2/2 3ms 2336 KiB
4 Elfogadva 2/2 3ms 2584 KiB
5 Elfogadva 2/2 3ms 2736 KiB
6 Elfogadva 2/2 2ms 2824 KiB
7 Elfogadva 2/2 3ms 2952 KiB
8 Elfogadva 2/2 3ms 3352 KiB
9 Elfogadva 2/2 3ms 3316 KiB
10 Elfogadva 4/4 2ms 3440 KiB
11 Elfogadva 4/4 3ms 3388 KiB
12 Elfogadva 4/4 3ms 3324 KiB
13 Elfogadva 4/4 3ms 3412 KiB
14 Elfogadva 4/4 3ms 3496 KiB
15 Elfogadva 4/4 3ms 3524 KiB
16 Elfogadva 6/6 3ms 3720 KiB
17 Elfogadva 6/6 3ms 3940 KiB