205542026-01-07 17:51:57PappMatyasSorozat generáláscpp17Elfogadva 50/5014ms2512 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

vector<long long> values;
bool done[1000000] = { false };
long long a, b, m, power, n, l;
long long startLoop, endIndex;

static void GetNextElement(int val)
{
	long long nval = val * a + b;
	long long lpower = power;
	for (int i = 0; i < m - 1; i++)
	{
		lpower /= 10;
	}
	nval %= lpower;
	for (int i = 0; i < m; i++)
	{
		nval /= 10;
	}
	if (startLoop == -1)
	{
		if (done[nval])
		{
			startLoop = nval;
		}
		else
		{
			endIndex++;
			done[nval] = true;
		}
	}
	values.push_back(nval);
	l++;
	if (l == n)
	{
		return;
	}
	GetNextElement(nval);
}

int main()
{
	long long x, k;
	cin >> m >> x >> a >> b >> n >> k;
	startLoop = -1;
	power = 1;
	endIndex = 0;
	l = 0;
	for (int i = 0; i < m * 4 - 1; i++)
	{
		power *= 10;
	}

	GetNextElement(x);
	long long startIndex = -1;

	for (long long i = 0; i < values.size(); i++)
	{
		if (values[i] == startLoop)
		{
			startIndex = i;
			break;
		}
	}

	sort(values.begin(), values.end());
	reverse(values.begin(), values.end());

	cout << endIndex - startIndex << endl << values[k - 1] << endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/013ms2472 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva4/42ms760 KiB
9Elfogadva4/43ms700 KiB
10Elfogadva4/44ms1036 KiB
11Elfogadva4/44ms1256 KiB
12Elfogadva4/48ms1452 KiB
13Elfogadva4/410ms2512 KiB
14Elfogadva4/412ms2324 KiB
15Elfogadva4/410ms2480 KiB
16Elfogadva4/414ms2476 KiB
17Elfogadva4/414ms2476 KiB