34822023-02-28 12:19:29CsongiSorozat generáláscsharpRészben helyes 46/50215ms34620 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>();
            for (int i = 0; i < lepes; i++)
            {
                kezd = gener(m, kezd, a, b);
                if (!list.Contains(kezd))
                {
                    list.Add(kezd);
                    //vegso.Add(kezd);
                }
                else
                {
                    //vegso.Add(kezd);
                    break;
                }
                    
            }
            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);
            }


            vegso.Sort(); // növekvő sorba rendezi
            Console.WriteLine(vegso[vegso.Count - k]);
            //for (int i = 0; i < vegso.Count; i++)
            //{
            //    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
base46/50
1Elfogadva0/032ms21176 KiB
2Elfogadva0/0186ms31700 KiB
3Elfogadva2/232ms21620 KiB
4Elfogadva2/239ms23768 KiB
5Elfogadva2/239ms24032 KiB
6Elfogadva2/237ms24076 KiB
7Elfogadva2/241ms25112 KiB
8Elfogadva4/446ms26432 KiB
9Elfogadva4/468ms30940 KiB
10Elfogadva4/4115ms32920 KiB
11Elfogadva4/4101ms32844 KiB
12Elfogadva4/4127ms33852 KiB
13Részben helyes2/4171ms34012 KiB
14Elfogadva4/4197ms34100 KiB
15Elfogadva4/4215ms34620 KiB
16Elfogadva4/4193ms34484 KiB
17Részben helyes2/4197ms34496 KiB