38872023-03-03 14:48:56PeterFasor (40)csharpRuntime error 4/40162ms74756 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];
            List<int> peakpoint = new List<int>();

            /*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 (int i = K-1; i<=st.Length-K; i++) //Nem kellene K-tól indexálni, mivel kimaradnak így esetek
            {
                if (st[i] >= st[i - 1] && st[i] >= st[i+1])
                {
                    peakpoint.Add(i);
                }
            }

            int jopont = 0;
            bool volt = false, vege = false;
            foreach (var item in peakpoint)
            {
                vege = true;
                for (int i = item-K; i < item+K; i++)
                {
                    if (st[i] > st[item])
                    {
                        vege = false;
                        break;
                    }
                    else
                    {
                        jopont = item;
                    }
                }
                if (vege)
                {
                    volt = true;
                    break;
                }
            }


            /*
            //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[] peakpontoktomb = peakpoint.ToArray();
            int faszam = 0;
            //int tokeletes = 0; //-1 - false; 0 - idk; 1 - true
            bool volt = false; //Talált-e ilyen intervallumot
            for (int j = 0; j < peakpontoktomb.Length-K;)
            {
                faszam++;
                bool vege = true;
                for (i = j-K; i <= j+K; i++)
                {
                    if (X[i] > X[j])
                    {
                        vege = false;
                        break;
                    }
                }
                if (vege) //Ha tökéletes volt az előző cikluslépésben látott mutatvány
                {
                    volt = true;
                    break;
                }
                j = peakpontoktomb[faszam];
            }
            */
            if (volt)
            {
                Console.WriteLine(jopont+1);
            }
            else
            {
                Console.WriteLine(-1);
            }

            Console.ReadKey();

        }
    }
}
SubtaskSumTestVerdictTimeMemory
base4/40
1Accepted0/032ms21876 KiB
2Runtime error0/041ms23784 KiB
3Runtime error0/234ms22040 KiB
4Runtime error0/232ms22076 KiB
5Runtime error0/234ms22680 KiB
6Accepted2/232ms23368 KiB
7Wrong answer0/237ms24556 KiB
8Runtime error0/237ms23892 KiB
9Wrong answer0/241ms26856 KiB
10Accepted2/241ms27124 KiB
11Runtime error0/243ms26580 KiB
12Wrong answer0/241ms26964 KiB
13Runtime error0/290ms44948 KiB
14Wrong answer0/286ms40992 KiB
15Runtime error0/2141ms59232 KiB
16Runtime error0/2148ms62392 KiB
17Runtime error0/2148ms62824 KiB
18Runtime error0/2153ms64028 KiB
19Runtime error0/2162ms74756 KiB
20Wrong answer0/279ms40284 KiB
21Runtime error0/2136ms59208 KiB
22Runtime error0/2153ms63056 KiB