3506 2023. 02. 28 13:52:39 Csongi Sorozat generálás csharp Elfogadva 50/50 209ms 34660 KiB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace sorozat
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] be = Console.ReadLine().Split();
            int m = int.Parse(be[0]); int kezd = int.Parse(be[1]); int a = int.Parse(be[2]); int b = int.Parse(be[3]); int lepes = int.Parse(be[4]); int k = int.Parse(be[5]);
            //int[] sorozat = new int[lepes];
            List<int> list = new List<int>();
            List<int> vegso = new List<int>();
            List<int> elem = new List<int>();
            Dictionary<int, int> vmi = new Dictionary<int, int>();
            int ism = -1;
            for (int i = 0; i < lepes; i++)
            {
                kezd = gener(m, kezd, a, b);
                elem.Add(kezd);
            }
            for (int i = 0; i < lepes; i++)
            {
                if (vmi.ContainsKey(elem[i]))
                {
                    ism = i - vmi[elem[i]];
                    break;
                }
                vmi.Add(elem[i], i);
            }
            //List<int> lista = new List<int>(list);
            
            //while (lista[0] != kezd)
            //{
            //    lista.RemoveAt(0);
            //}



            //Console.WriteLine(lista.Count);


            //for (int i = 0; i < lepes; i++)
            //{
            //    kezd = gener(m, kezd, a, b);
            //    vegso.Add(kezd);
            //}


            elem.Sort(); // növekvő sorba rendezi
            Console.WriteLine(ism); // 13. tesztesetnél 2-vel nagyobb indexüt ir ki!!!!!!!!!!!!
            Console.WriteLine(elem[lepes - k]);
            //for (int i = 0; i < vegso.Count; i++)s
            //{
            //    Console.WriteLine("//");
            //    Console.WriteLine(vegso[i]);
            //}
            //for (int i = 0; i < sorozat.Length; i++)
            //{
            //    Console.WriteLine(sorozat[i]);
            //}

            //Console.WriteLine(h);
            Console.ReadKey();
        }

        static int gener(int m, int kezd, int a, int b)
        {
            int szamkesz = -1;
            ulong elsosz = (ulong)kezd * (ulong)a + (ulong)b;
            string h = elsosz.ToString();
            h = new string('0', m * 4 - elsosz.ToString().Length) + h;
            //for (int i = 0; kezd.ToString().Length < m * 4 && i < kezd.ToString().Length; i++)
            //{
            //    h = "0" + h;
            //}
            szamkesz = int.Parse(h.Substring(m, m * 2));
            return szamkesz;
        }
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 34ms 21072 KiB
2 Elfogadva 0/0 180ms 31324 KiB
3 Elfogadva 2/2 32ms 21936 KiB
4 Elfogadva 2/2 41ms 23636 KiB
5 Elfogadva 2/2 41ms 24352 KiB
6 Elfogadva 2/2 37ms 23932 KiB
7 Elfogadva 2/2 41ms 24968 KiB
8 Elfogadva 4/4 46ms 26692 KiB
9 Elfogadva 4/4 68ms 31352 KiB
10 Elfogadva 4/4 115ms 33064 KiB
11 Elfogadva 4/4 105ms 32604 KiB
12 Elfogadva 4/4 127ms 33920 KiB
13 Elfogadva 4/4 170ms 34228 KiB
14 Elfogadva 4/4 188ms 33956 KiB
15 Elfogadva 4/4 209ms 34224 KiB
16 Elfogadva 4/4 184ms 34660 KiB
17 Elfogadva 4/4 184ms 34560 KiB