38002023-03-02 22:53:39PeterFasor (40)csharpHibás válasz 10/40301ms28160 KiB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace fasor
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Beolvasás:
            int[] st = Console.ReadLine().Split().Select(int.Parse).ToArray();
            int N = st[0];
            int K = st[1];
            //Tömbnek kezdő-végző elemek
            int[] X = new int[N + 2 * K];
            int i = 0;
            for (i = 0; i < K; i++)
            {
                X[i] = 0;
            }
            //int[] st2 = new int[N+1]; //Emiatt miért akad ki hogyha ez nincs kikommentezve és a következő sorban az st helyett az st2-t akarnám
            st = Console.ReadLine().Split().Select(int.Parse).ToArray(); //FONTOS: 48k karakternél kiakad? Miért?
            for (i = i; i < K+N; i++)
            {
                X[i] = st[i - K];
            }
            for (i = i; i < K+N+K; i++)
            {
                X[i] = 0;
            }



            //Algoritmus:
            //Bool tokeletes = true;
            //Kiindul egy fától és megnézi hogy annak K környezében van-e magasabb (+- <-- How? K elemmel feltöltjük a tömb elejét és végét, így nem fog kiindexelni), for ciklussal végigmegy -K-tól K-ig, ha talál egy nagyobb akkor break, tokeles = false.
            //If tokeletes = true akkor break;, ha nem az akkor obviously megy tovább a következő fára ami a foreach következő eleme lesz

            int faszam = 0;
            //int tokeletes = 0; //-1 - false; 0 - idk; 1 - true
            foreach (var fa in X)
            {
                faszam++;
                //tokeletes = 0;
                for (i = -K; i <= K; i++)
                {
                    if (X[i+K]>fa)
                    {
                        //tokeletes = -1;
                        break;
                    }
                }
                if (i>K) //Ha tökéletes volt az előző cikluslépésben látott mutatvány
                {
                    break;
                }
            }

            Console.WriteLine(faszam-K);

            Console.ReadKey();

        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base10/40
1Elfogadva0/032ms21780 KiB
2Hibás válasz0/039ms24536 KiB
3Elfogadva2/230ms22492 KiB
4Hibás válasz0/230ms23024 KiB
5Elfogadva2/230ms23212 KiB
6Hibás válasz0/230ms23824 KiB
7Elfogadva2/235ms24456 KiB
8Hibás válasz0/235ms25284 KiB
9Elfogadva2/239ms26732 KiB
10Hibás válasz0/239ms27492 KiB
11Hibás válasz0/241ms27376 KiB
12Elfogadva2/239ms27076 KiB
13Időlimit túllépés0/2301ms16748 KiB
14Időlimit túllépés0/2250ms17468 KiB
15Időlimit túllépés0/2275ms26448 KiB
16Időlimit túllépés0/2263ms26972 KiB
17Időlimit túllépés0/2270ms27976 KiB
18Időlimit túllépés0/2250ms27508 KiB
19Időlimit túllépés0/2275ms27376 KiB
20Időlimit túllépés0/2243ms15732 KiB
21Időlimit túllépés0/2270ms26940 KiB
22Időlimit túllépés0/2266ms28160 KiB