35062023-02-28 13:52:39CsongiSorozat generáláscsharpElfogadva 50/50209ms34660 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ÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/034ms21072 KiB
2Elfogadva0/0180ms31324 KiB
3Elfogadva2/232ms21936 KiB
4Elfogadva2/241ms23636 KiB
5Elfogadva2/241ms24352 KiB
6Elfogadva2/237ms23932 KiB
7Elfogadva2/241ms24968 KiB
8Elfogadva4/446ms26692 KiB
9Elfogadva4/468ms31352 KiB
10Elfogadva4/4115ms33064 KiB
11Elfogadva4/4105ms32604 KiB
12Elfogadva4/4127ms33920 KiB
13Elfogadva4/4170ms34228 KiB
14Elfogadva4/4188ms33956 KiB
15Elfogadva4/4209ms34224 KiB
16Elfogadva4/4184ms34660 KiB
17Elfogadva4/4184ms34560 KiB