Loading...
MariaSpasova avatar MariaSpasova 0 Точки

C# Technology Fundamentals - Exercise: Lists / Arrays Advanced - More Exercise - Problem{4} - Mixed up Lists

Здравейте!

 

Зациклих на една от допълнителните задачи за списъци: 4. *Mixed up Lists вече доста време.

Примерът минава, обаче Judge твърдо показва 50/100 и не ми подсказва къде да търся грешката.

Дали може някой да ме светне къде бъркам?

Това ми е кодът.

Тагове:
0
Fundamentals Module
ddragov avatar ddragov 6 Точки

Здравей,

разгледах кода и  "грешката ти" е в условието на задачата, което нарочно или не е некоректно (може би за това е звездичката, защото като решение задачата е тривиална). Когато втория лист от числа е по-дълъг от първия се взимат първите две числа от него за обхвата (range). Коригирах кода ти и сега Judge дава 100/100.

using System;
using System.Collections.Generic;
using System.Linq;

namespace MixedUpLists
{
    class Program
    {
        static void Main(string[] args)
        {
            //Input
            var firstList = Console.ReadLine().Split().Select(int.Parse).ToList();
            var secondList = Console.ReadLine().Split().Select(int.Parse).ToList();

            //Find the lower limit and the upper limit
            int lowerLimit = int.MinValue;
            int upperLimit = int.MaxValue;
            if (firstList.Count > secondList.Count)
            {
                lowerLimit = Math.Min(firstList[firstList.Count - 2], 
                                      firstList[firstList.Count - 1]);
                upperLimit = Math.Max(firstList[firstList.Count - 2], 
                                      firstList[firstList.Count - 1]);
            }
            else if (firstList.Count < secondList.Count)
            {
                lowerLimit = Math.Min(secondList[0], secondList[1]);
                upperLimit = Math.Max(secondList[0], secondList[1]);

                //Remove first two lement, becouse first two elements are the range
                secondList.RemoveAt(0);
                secondList.RemoveAt(1);
            }
            List<int> commonList = new List<int>();

            //Find the smaller length
            int k = Math.Min(firstList.Count, secondList.Count);

            for (int i = 0; i < k; i++)
            {
                commonList.Insert(2 * i, firstList[i]);
                commonList.Insert((2 * i + 1), secondList[k - i - 1]);
            }

            commonList.RemoveAll(x => (x <= lowerLimit || x >= upperLimit));
            commonList.Sort();
            Console.WriteLine(String.Join(" ", commonList));

        }
    }
}

 

0
01/05/2019 13:33:24
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.