86712024-01-25 06:51:01BenedekMartonKombináció (50)cpp17Részben helyes 47/503ms3880 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>=1 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ÖsszpontTesztVerdiktIdőMemória
base47/50
1Elfogadva0/03ms1876 KiB
2Elfogadva0/03ms1916 KiB
3Elfogadva2/23ms2132 KiB
4Részben helyes1/23ms2348 KiB
5Elfogadva2/22ms2436 KiB
6Elfogadva2/23ms2572 KiB
7Elfogadva2/23ms2676 KiB
8Elfogadva2/23ms2928 KiB
9Elfogadva2/23ms3016 KiB
10Elfogadva4/43ms3032 KiB
11Elfogadva4/43ms3520 KiB
12Elfogadva4/43ms3452 KiB
13Részben helyes2/42ms3408 KiB
14Elfogadva4/43ms3524 KiB
15Elfogadva4/43ms3744 KiB
16Elfogadva6/63ms3748 KiB
17Elfogadva6/63ms3880 KiB