98822024-03-14 18:57:49GervidKombináció (50)cpp17Hibás válasz 41/503ms3472 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ÖsszpontTesztVerdiktIdőMemória
base41/50
1Elfogadva0/03ms1976 KiB
2Hibás válasz0/03ms2112 KiB
3Elfogadva2/22ms2196 KiB
4Elfogadva2/23ms2204 KiB
5Elfogadva2/23ms2264 KiB
6Elfogadva2/23ms2352 KiB
7Részben helyes1/23ms2480 KiB
8Elfogadva2/22ms2488 KiB
9Elfogadva2/23ms2628 KiB
10Elfogadva4/43ms2836 KiB
11Részben helyes2/43ms3052 KiB
12Elfogadva4/43ms3136 KiB
13Elfogadva4/43ms3244 KiB
14Elfogadva4/43ms3372 KiB
15Elfogadva4/43ms3464 KiB
16Részben helyes3/63ms3464 KiB
17Részben helyes3/63ms3472 KiB