Задача 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