コード例 #1
0
        public List <int> Go()
        {
            ReadingTestCases.ReadAllText();
            int         N        = Convert.ToInt32(ReadingTestCases.ReadLine());
            Stack <int> stack    = new Stack <int>();
            int         curMax   = Int32.MinValue;
            Stack <int> stackMax = new Stack <int>();

            while (N-- > 0)
            {
                string query = ReadingTestCases.ReadLine().Trim();


                if (query.Length > 1)
                {
                    string[] arr = query.Split(' ');
                    int      val = Convert.ToInt32(arr[1]);
                    stack.Push(val);
                    if (val > curMax)
                    {
                        curMax = val;
                        stackMax.Push(curMax);
                    }
                }
                else
                {
                    if (query == "2")
                    {
                        int popVal = stack.Pop();
                        if (popVal == curMax)
                        {
                            if (stackMax.Count > 0)
                            {
                                stackMax.Pop();
                                if (stackMax.Count > 0)
                                {
                                    curMax = stackMax.Peek();
                                }
                                else
                                {
                                    curMax = Int32.MinValue;
                                }
                            }
                            else
                            {
                                curMax = Int32.MinValue;
                            }
                        }
                    }
                    else
                    {
                        ReadingTestCases.WriteLine(curMax.ToString());
                    }
                }
            }
            return(new List <int>());
        }
コード例 #2
0
        public List <string> Go()
        {
            ReadingTestCases.ReadAllText();
            string s = ReadingTestCases.ReadLine();
            Dictionary <char, int> dict = new Dictionary <char, int>();
            char         prev           = s[0];
            Point        prevPoint      = new Point(s[0] - 96, s[0]);
            List <Point> lp             = new List <Point>();

            if (s.Length == 1)
            {
                lp.Add(prevPoint);
            }
            else
            {
                for (int i = 1; i < s.Length; i++)
                {
                    if (prev == s[i])
                    {
                        prevPoint.Sum += s[i] - 96;
                    }
                    else
                    {
                        lp.Add(prevPoint);
                        prevPoint = new Point(s[i] - 96, s[i]);
                        prev      = s[i];
                        if (i == s.Length - 1)
                        {
                            lp.Add(prevPoint);
                        }
                    }
                }
            }

            int n = Convert.ToInt32(ReadingTestCases.ReadLine());

            for (int a0 = 0; a0 < n; a0++)
            {
                int  x     = Convert.ToInt32(ReadingTestCases.ReadLine());
                bool isYes = false;
                foreach (var p in lp)
                {
                    int dif = p.Sum - x;
                    if (dif < 0)
                    {
                        continue;
                    }
                    if (dif == 0 || dif % ((int)p.Charp - 96) == 0)
                    {
                        ReadingTestCases.WriteLine("Yes");
                        isYes = true;
                        break;
                    }
                    //  Console.WriteLine(p.Charp+ " "+ p.Sum);
                }

                if (isYes)
                {
                    continue;
                }
                ReadingTestCases.WriteLine("No");
                // your code goes here
            }
            return(new List <string>());
        }