9883 2024. 03. 14 19:00:19 Gervid Kombináció (50) cpp17 Elfogadva 50/50 3ms 4392 KiB
#include <iostream>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <limits.h>
#include <algorithm>
#include <math.h>

using namespace std;

int main()
{
	iostream::sync_with_stdio(0);
	cin.tie(0);

	int n, m, i, j;
	cin >> n >> m;

	vector<int> vec(m);
	for (i = 0; i < m; i++)
	{
		cin >> vec[i];
	}

	//previous
	for (i = m-1; i > 0; i--)
	{
		if (vec[i] > vec[i-1] + 1)
		{
			for (j = 0; j < i; j++)
			{
				cout << vec[j] << ' ';
			}
			cout << vec[j] - 1 << ' ';
			for (j++; j < m; j++)
			{
				cout << n - m + j + 1 << ' ';
			}
			cout << '\n';

			break;
		}
	}
	if (i == 0) //need to decrement first index || vec is the first one
	{
		j = 1;
		if (vec[0] > 1)
		{
			cout << vec[0] - 1 << ' ';
			j++;
		}
		for (; j <= m; j++)
		{
			cout << n - m + j << ' ';
		}
		cout << '\n';
	}

	//next
	if (vec.back() < n)
	{
		for (i = 0; i < m-1; i++) cout << vec[i] << ' ';
		cout << vec.back() + 1;

		return 0;
	}

	for (i = m-2; i > -1; i--)
	{
		if (vec[i] + 1 < vec[i+1])
		{
			for (j = 0; j < i; j++) cout << vec[j] << ' ';
			cout << vec[i] + 1 << ' ';
			for (j = i + 1; j < m; j++) cout << n - m + j + 1 << ' ';
			
			return 0;
		}
	}

	for (i = 1; i <= m; i++)
	{
		cout << i << ' ';
	}
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1972 KiB
2 Elfogadva 0/0 3ms 2188 KiB
3 Elfogadva 2/2 3ms 2408 KiB
4 Elfogadva 2/2 3ms 2616 KiB
5 Elfogadva 2/2 3ms 2640 KiB
6 Elfogadva 2/2 3ms 2872 KiB
7 Elfogadva 2/2 3ms 2924 KiB
8 Elfogadva 2/2 3ms 3048 KiB
9 Elfogadva 2/2 3ms 3244 KiB
10 Elfogadva 4/4 3ms 3460 KiB
11 Elfogadva 4/4 3ms 3684 KiB
12 Elfogadva 4/4 3ms 3892 KiB
13 Elfogadva 4/4 3ms 4072 KiB
14 Elfogadva 4/4 3ms 4180 KiB
15 Elfogadva 4/4 3ms 4228 KiB
16 Elfogadva 6/6 3ms 4296 KiB
17 Elfogadva 6/6 3ms 4392 KiB