205522026-01-07 17:50:13PappMatyasSorozat generáláscpp17Hibás válasz 30/508ms1180 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

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

static void GetNextElement(int val)
{
	int nval = val * a + b;
	int 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()
{
	int 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);
	int startIndex = -1;

	for (int 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
base30/50
1Elfogadva0/01ms500 KiB
2Hibás válasz0/08ms952 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms364 KiB
8Elfogadva4/41ms316 KiB
9Elfogadva4/43ms404 KiB
10Elfogadva4/44ms740 KiB
11Elfogadva4/44ms692 KiB
12Elfogadva4/47ms944 KiB
13Hibás válasz0/47ms944 KiB
14Hibás válasz0/48ms944 KiB
15Hibás válasz0/48ms1180 KiB
16Futási hiba0/41ms420 KiB
17Futási hiba0/41ms316 KiB