9882 2024. 03. 14 18:57:49 Gervid Kombináció (50) cpp17 Hibás válasz 41/50 3ms 3472 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 41/50
1 Elfogadva 0/0 3ms 1976 KiB
2 Hibás válasz 0/0 3ms 2112 KiB
3 Elfogadva 2/2 2ms 2196 KiB
4 Elfogadva 2/2 3ms 2204 KiB
5 Elfogadva 2/2 3ms 2264 KiB
6 Elfogadva 2/2 3ms 2352 KiB
7 Részben helyes 1/2 3ms 2480 KiB
8 Elfogadva 2/2 2ms 2488 KiB
9 Elfogadva 2/2 3ms 2628 KiB
10 Elfogadva 4/4 3ms 2836 KiB
11 Részben helyes 2/4 3ms 3052 KiB
12 Elfogadva 4/4 3ms 3136 KiB
13 Elfogadva 4/4 3ms 3244 KiB
14 Elfogadva 4/4 3ms 3372 KiB
15 Elfogadva 4/4 3ms 3464 KiB
16 Részben helyes 3/6 3ms 3464 KiB
17 Részben helyes 3/6 3ms 3472 KiB