78862024-01-11 17:57:40ananászSorozat generáláscsharpAccepted 50/50119ms32240 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 teljesen
            kimaradt = (kimaradt) % (ismetlodik);  //ennyi maradt még az utolsó ismétlődés után
            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();
        }
    }
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/037ms22080 KiB
2Accepted0/0108ms27764 KiB
3Accepted2/235ms22744 KiB
4Accepted2/239ms23404 KiB
5Accepted2/237ms23580 KiB
6Accepted2/237ms24208 KiB
7Accepted2/241ms24244 KiB
8Accepted4/441ms24632 KiB
9Accepted4/448ms25164 KiB
10Accepted4/467ms26672 KiB
11Accepted4/467ms26936 KiB
12Accepted4/479ms27992 KiB
13Accepted4/4107ms29900 KiB
14Accepted4/4103ms29812 KiB
15Accepted4/4104ms31700 KiB
16Accepted4/4115ms31444 KiB
17Accepted4/4119ms32240 KiB