7880 | 2024. 01. 11 17:50:55 | ananász | Sorozat generálás | csharp | Elfogadva 50/50 | 54ms | 26428 KiB |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace sorozat_generalas
{
class Program
{
static void Main(string[] args)
{
string[] st = Console.ReadLine().Split();
int M = int.Parse(st[0]);
int x = int.Parse(st[1]);//kezdőszám
int A = int.Parse(st[2]);
int B = int.Parse(st[3]);
int N = int.Parse(st[4]);//lépések száma
int K = int.Parse(st[5]);
List<int> sorozat = new List<int>();
long akt = x;
string s = "";
int ismetlodik = 0;
for (int i = 0; i < N; i++)
{
akt = akt * A + B;
s = akt.ToString();
s = s.Remove(s.Length - M);
while (s.Length > 2 * M)
{
s = s.Remove(0, 1);
}
akt = int.Parse(s);
if (!sorozat.Contains((int)akt))
{
sorozat.Add((int)akt);
}
else
{
ismetlodik = (int)akt;
break;
}
}
/*int id = 0;
List<int> rendezett = new List<int>(sorozat);
while (sorozat[0] != ismetlodik)
{
sorozat.RemoveAt(0);
id++;
}
Console.WriteLine(sorozat.Count);
id = 0;
for (int i = rendezett.Count; i < N; i++)
{
if (id==sorozat.Count)
{
id = 0;
}
rendezett.Add(sorozat[id]);
id++;
}
rendezett=rendezett.OrderByDescending(y => y).ToList();
Console.WriteLine(rendezett[K-1]);*/
int id = 0;
List<int> eleje = new List<int>();
while (sorozat[id] != ismetlodik)
{
eleje.Add(sorozat[id]);
id++;
}
ismetlodik = sorozat.Count - id;//hány ismétlődik
Console.WriteLine(ismetlodik);
List<int> rendezett = new List<int>(sorozat);
int kimaradt = N - sorozat.Count;
int ismdb = kimaradt / (ismetlodik)+1;//ennyiszer ismétlődik utána teljesen
kimaradt = (kimaradt) % (ismetlodik);//ennyi maradt még utána
List<int> maradek = new List<int>();
for (int i = id; i < kimaradt+id; i++)
{
maradek.Add(sorozat[i]);
}
rendezett = rendezett.OrderByDescending(y => y).ToList();
int keresett = 0;
id = 0;
for (int i = 0; i < rendezett.Count; i++)
{
if (maradek.Contains(rendezett[i]))
{
id += ismdb + 1;
}
else if (eleje.Contains(rendezett[i]))
{
id++;
}
else
{
id += ismdb;
}
if (id >= K)
{
keresett = rendezett[i];
break;
}
}
Console.WriteLine(keresett);
Console.ReadKey();
}
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 35ms | 22096 KiB | |||
2 | Elfogadva | 0/0 | 43ms | 23224 KiB | |||
3 | Elfogadva | 2/2 | 35ms | 23184 KiB | |||
4 | Elfogadva | 2/2 | 35ms | 23216 KiB | |||
5 | Elfogadva | 2/2 | 37ms | 23696 KiB | |||
6 | Elfogadva | 2/2 | 37ms | 23964 KiB | |||
7 | Elfogadva | 2/2 | 35ms | 24340 KiB | |||
8 | Elfogadva | 4/4 | 35ms | 24500 KiB | |||
9 | Elfogadva | 4/4 | 37ms | 24872 KiB | |||
10 | Elfogadva | 4/4 | 37ms | 25096 KiB | |||
11 | Elfogadva | 4/4 | 37ms | 25188 KiB | |||
12 | Elfogadva | 4/4 | 37ms | 24924 KiB | |||
13 | Elfogadva | 4/4 | 50ms | 25892 KiB | |||
14 | Elfogadva | 4/4 | 50ms | 25704 KiB | |||
15 | Elfogadva | 4/4 | 46ms | 26064 KiB | |||
16 | Elfogadva | 4/4 | 50ms | 26124 KiB | |||
17 | Elfogadva | 4/4 | 54ms | 26428 KiB |