Задача 03.Increasing Crisis от Array and List Algorithms -More Exercises
Моля, за малко помощ...
Не мога да хвана,някое изключение..Ето и кода:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _03.Increasing_Crisis
{
    class Program
    {
        static void Main(string[] args)
        {
            var n = int.Parse(Console.ReadLine());
            var output = new List<int>();
            for (int i = 0; i < n; i++)
            {
                var input = Console.ReadLine().Split(' ').Select(int.Parse).ToList();
                var rightMostElement = 0;
                var position = 0;
                var isBreak = false;
                if (output.Count==0)
                {
                    for (int j = 0; j <input.Count ; j++)
                    {
                        output.Add(input[j]);
                    }
                }
                else
                {
                   for (int k = 0; k < output.Count; k++)
                   {
                        if (input[0] > output[k])
                        {
                            rightMostElement = output[k];
                            position = output.IndexOf(rightMostElement);
                        }
                        else if (input[0]==output[k])
                        {
                            position++;
                        }
                   }
                    if (input[0] >= output[0])
                    {
                        output.InsertRange(position + 1, input);
                    }
                   
                }
                var breakElement = 0;
                var breakPosition = 0;
                for (int j = 1; j < output.Count; j++)
                {
                    if (output[j] < output[j-1])
                    {
                        breakElement = output[j];
                        breakPosition = output.LastIndexOf(breakElement);
                        isBreak = true;
                        break;
                    }
                }
                if (isBreak)
                {
                    for (int j = output.Count-1; j >=breakPosition; j--)
                    {
                        output.RemoveAt(j);
                    }
                }
            }
            Console.WriteLine(string.Join(" ",output));
        }
    }
}
тези задачи са такива и твоя е добре, погледни тук - 2 пъти по дълъг е. но съм сигурен че като стигнем пак до там ще ги решим по - добре.
Bullsized, spzvtbg, вашите решения действително дават 100/100 в judge, но не смятам, че дават правилни решения на:
3
1 3 5 6
1 5 1
1 2 3
-------------
1 1 1 2 3 5, а правилният отговор би трябвало да е: 1 1 1 2 3
4
1 3 7
9 11 3
17 8 1 3 6
16 17 19 2
-------------
1 3 7 9 11 16 17 19, а правилният отговор би трябвало да е: 1 3 7 9 11 16 17
Отделно от това, не смятам, че в кода на Bullsized е редно да се сортира първият подаден масив...
При мен гърми последният тест в judge и дава 80/100.
Здравейте!
И аз я докарах до 80 от 100, но според условието - се добавя числото преди "чупещото" и тогава:
3
1 3 5 6
1 5 1
1 2 3
би трябвало да е : 1 1 1 2 3 3 5 5
а
4
1 3 7
9 11 3
17 8 1 3 6
16 17 19 2
би трябвало да е: 1 3 7 9 11 16 17 17 19
Или греша ?
P.S това е моят "мазеляк" https://github.com/morskibg/CS_trainingAtWork/blob/master/1/Program.cs
За съжаление условието на задачата е написано така, че да търпи различни нюанси на интерпретацията. Смятам, че би било добре или да се напише условието малко по-ясно, или да се добавят още един, два "нулеви" теста, за да се изясни какво точно се изисква да бъде написано :)
Здрасти,
предполагам нарочно ги правят така условията - да има гърч :).
Относно поведението при "чупещо" число - от примерите се вижда :
5
1 2 12 15 16
4 5 6
5 5 5
3 2
3 4 5 6
***************
1 2 3 3 4 5 6 - първата 3 се добавя при "счупването".
Както и да е - ще го мъчим още!
Поздрави!
Гърчът има смисъл само, ако знаеш какво точно правиш, СМСМ ;)
Ето и моето решение, ако смяташ, че ще ти помогне, хвърли му едно око:
https://pastebin.com/8sF6yvTr