2971 | 2023-02-06 18:12:31 | CWM | Sorozat generálás | cpp11 | Forditási hiba |
// SorozatGen.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include <vector>
using namespace std;
int GenNextElement(int Base, int A, int B, int M) {
Base = Base * A + B;
Base %= (int)pow(10, M * 2 + 1);
Base /= (int)pow(10, M);
return Base;
}
int main()
{
int M, BeginningNum, A, B, Lenght, K;
cin >> M >> BeginningNum >> A >> B >> Lenght >> K;
vector<int> LastElementMet((int)pow(10, M+1));
int Looplenght = 0;
int NumbersBeforeLoopLenght = 0;
int OG = BeginningNum;
int OGL = Lenght;
for (size_t i = 1; i < (int)pow(10, M + 1); i++)
{
BeginningNum = GenNextElement(BeginningNum, A, B, M);
if (LastElementMet[BeginningNum] == 0) {
LastElementMet[BeginningNum] = i;
}
else {
NumbersBeforeLoopLenght = LastElementMet[BeginningNum];
Looplenght = i - LastElementMet[BeginningNum];
break;
}
}
cout << BeginningNum << "\n";
vector<int> Loop;
for (size_t i = 0; i < Looplenght; i++)
{
Loop.push_back(BeginningNum);
BeginningNum = GenNextElement(BeginningNum, A, B, M);
}
vector<int> CountTillLenght((int)pow(10, M + 1));
BeginningNum = OG;
for (size_t i = 0; i < NumbersBeforeLoopLenght-1; i++)
{
BeginningNum = GenNextElement(BeginningNum, A, B, M);
CountTillLenght[BeginningNum]++;
}
Lenght -= NumbersBeforeLoopLenght;
int Repeated = Lenght % Looplenght;
for (size_t i = 0; i < Repeated; i++)
{
CountTillLenght[Loop[i]]++;
}
Lenght -= Repeated;
int smallloop = Lenght / Looplenght;
for (size_t i = 0; i < Looplenght; i++)
{
CountTillLenght[Loop[i]] += smallloop;
}
int CCount = 0;
for (int i = (int)pow(10, M + 1)-1; i >= 0; i--)
{
CCount += CountTillLenght[i];
if (CCount >= OGL-K-1) {
cout << i << "\n";
return 0;
}
}
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu
// Tips for Getting Started:
// 1. Use the Solution Explorer window to add/manage files
// 2. Use the Team Explorer window to connect to source control
// 3. Use the Output window to see build output and other messages
// 4. Use the Error List window to view errors
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
exit status 1
main.cpp: In function 'int GenNextElement(int, int, int, int)':
main.cpp:9:18: error: 'pow' was not declared in this scope
9 | Base %= (int)pow(10, M * 2 + 1);
| ^~~
main.cpp: In function 'int main()':
main.cpp:18:37: error: 'pow' was not declared in this scope
18 | vector<int> LastElementMet((int)pow(10, M+1));
| ^~~
Exited with error status 1