0 / 0 / 0
Регистрация: 30.07.2017
Сообщений: 7

Поиск индекса числа в массиве ()

09.08.2017, 14:46. Показов 2912. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте есть задача, я её решил, но не проходит тест (тест онлайн). Подскажите пожалуйста что я не верно сделал? Спасибо!

Задание:
Suppose we are given two sequences of numbers. All numbers in the first sequence are sorted. For each element from the second sequence print the index where an element must be inserted into the first sequence without breaking the sorting. In case when element b of the second sequence is in the first sequence, the lowest index for element b, which does not break the sorting must be printed. The indexes start from 0. The input data are integer numbers. All numbers are separated by spaces. First number n is a number of members of the first sequence. Next n numbers are elements of the first sequence. Next number m is a number of members of the second sequence. Next m numbers are elements of the second sequence. Input data guarantees that the inputs and the result will be less than 2 147 483 647. Output data must be a number of elements of the second sequence and indexes for each element of the second sequence, where they must be inserted into the first sequence without breaking the sorting. All numbers must be separated by spaces.

код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            var input = Console.ReadLine();
            var numbers = input.Split(' ').Select(x => int.Parse(x)).ToArray();
 
            var mass_A = new int[numbers[0]];
            var mass_B = new int[numbers[numbers[0] + 1]];
            var position_B = numbers[numbers[0] + 1];
            Array.Copy(numbers, 1, mass_A, 0, numbers[0]);
            Array.Copy(numbers, numbers[0] + 2, mass_B, 0, position_B);
                        
            List<int> list = new List<int>();
            
            Console.Write(mass_B.Length);
            for (int i=0; i < mass_B.Length; i++)
            {
                list.Clear();
                list = mass_A.OfType<int>().ToList();
                list.Add(mass_B[i]);
                list.Sort();
                                
                Console.Write(" " + list.IndexOf(mass_B[i]));
            }
P.S. Console.ReadKey не нужен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2017, 14:46
Ответы с готовыми решениями:

Поиск индекса заданного элемента в отсортированном массиве
1. Заполнить статический массив значениями 90, 76, 54, 23, 56, 12, 48. Результат в виде таблицы значений массива вывести на консоль. ...

Поиск в заданном массиве третьего положительного элемента и его индекса
Нужно: Написать программу поиска в заданном массиве B, состоящем из 20-ти элементов, третьего положительного элемента и его индекса. ...

Поиск в заданном массиве В, состоящем из 10-ти элементов, третьего положительного элемента и его индекса
Для заданного условия составить процедуру и придумать несколько наборов тестовых данных для отладки. Возможно использование как статических...

10
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.08.2017, 15:15
Цитата Сообщение от george-fan Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
for (int i=0; i < mass_B.Length; i++)
     {
        list.Clear();
        list = mass_A.OfType<int>().ToList();
         list.Add(mass_B[i]);
        list.Sort();
Console.Write(" " + list.IndexOf(mass_B[i]));
 }
ты очищаешь всегда массив, и хочешь узнать индекс элемента? так он всегда будет в 0 индексе, это сразу первое, что бросается в глаза
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
09.08.2017, 15:16
Цитата Сообщение от george-fan Посмотреть сообщение
Подскажите пожалуйста что я не верно сделал?
Попробуйте сопоставить каждую часть спецификации с участком кода, который ее реализует.

Конкретно интересует вот эта часть:
Цитата Сообщение от george-fan Посмотреть сообщение
First number n is a number of members of the first sequence. Next n numbers are elements of the first sequence. Next number m is a number of members of the second sequence. Next m numbers are elements of the second sequence.
В чем расхождение спека вот с этим кодом?
Цитата Сообщение от george-fan Посмотреть сообщение
C#
1
2
3
4
5
var mass_A = new int[numbers[0]];
var mass_B = new int[numbers[numbers[0] + 1]];
var position_B = numbers[numbers[0] + 1];
Array.Copy(numbers, 1, mass_A, 0, numbers[0]);
Array.Copy(numbers, numbers[0] + 2, mass_B, 0, position_B);
0
0 / 0 / 0
Регистрация: 30.07.2017
Сообщений: 7
09.08.2017, 15:34  [ТС]
вы правы очистки не надо, потому что я перезаписываю в лист (list = mass_A.OfType<int>().ToList(), но проверку не проходит все равно. Дело не в этом.
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.08.2017, 15:45
Input data guarantees that the inputs and the result will be less than 2 147 483 647.
это условие у Вас тоже не выполнено, вы нигде не гарантируете что большее число нельзя передать. Никаких проверок на данный счет, а следовательно можно получить ошибку.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
09.08.2017, 15:48
Цитата Сообщение от george-fan Посмотреть сообщение
Дело не в этом.
У вас данные неправильно считываются.

Попробуйте пройтись отладчиком и проверять что происходит на каждой строчке выделенного мной выше кода.
Скажем, с таким вводом:
5 3 7 8 12 13 14 20 31 45 78 97 100 234 468 500 671 764 772 813 934
Добавлено через 58 секунд
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
это условие у Вас тоже не выполнено, вы нигде не гарантируете что большее число нельзя передать.
Эта строка означает, что входные данные гарантированно удовлетворяют этому условию, то есть проверка не требуется.
0
0 / 0 / 0
Регистрация: 30.07.2017
Сообщений: 7
09.08.2017, 15:56  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
В чем расхождение спека вот с этим кодом?
Цитата Сообщение от george-fan Посмотреть сообщение
C#
1
2
3
4
5
var mass_A = new int[numbers[0]];
var mass_B = new int[numbers[numbers[0] + 1]];
var position_B = numbers[numbers[0] + 1];
Array.Copy(numbers, 1, mass_A, 0, numbers[0]);
Array.Copy(numbers, numbers[0] + 2, mass_B, 0, position_B);
Не вижу расхождений. Возможно вы что то заметили? position_B - длина второго массива.

Добавлено через 6 минут
Цитата Сообщение от kolorotur Посмотреть сообщение
Попробуйте пройтись отладчиком и проверять что происходит на каждой строчке выделенного мной выше кода.
Скажем, с таким вводом:
5 3 7 8 12 13 14 20 31 45 78 97 100 234 468 500 671 764 772 813 934

выводит все правильно.
ответ: 14 5 5 5 5 5 5 5 5 5 5 5 5 5 5

Или я не понял суть задачи
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.08.2017, 15:59
george-fan, скинь в лс сайт где проверяешь
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
09.08.2017, 16:07
Цитата Сообщение от george-fan Посмотреть сообщение
Не вижу расхождений. Возможно вы что то заметили?
Виноват — запутался во вложенных индексаторах.

В таком случае с виду вроде бы все нормально. Сайт говорит, почему не принято? Может имеется определенный лимит времени на выполнение задания? Предложенный алгоритм будет очень медленно работать на больших цепочках.
0
0 / 0 / 0
Регистрация: 30.07.2017
Сообщений: 7
09.08.2017, 16:15  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
В таком случае с виду вроде бы все нормально. Сайт говорит, почему не принято? Может имеется определенный лимит времени на выполнение задания? Предложенный алгоритм будет очень медленно работать на больших цепочках.
но первые 7 тестов не верный результат. если бы все ок то пройшло бы их.
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.08.2017, 17:54
george-fan, сайт то скинешь? так быстрее будет найти проблему

Добавлено через 1 час 22 минуты
Посмотрел я эти тесты, очень странно проходит там проверка, тестовый результат отрабатывает на ура. В проверках слишком много условий, возможно ему просто не нравится, что-то в самом коде, лишние символы какие, даже и не скажешь сразу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.08.2017, 17:54
Помогаю со студенческими работами здесь

Поиск в массиве индекса МИН элемента
День добрый, встал вопрос поиска Индекса минимльного элемента в массиве, причем любого кроме нуля. Т.к. в массив в качестве нулей заносятся...

Поиск индекса минимального элемента в массиве
Такая проблема: надо написать программку которая ищет индекс минимального элемента массива. Препод дал мне вот такую прогу: import...

Поиск индекса самого наименьшего элемента в массиве
Нужно написать шаблонную функцию, которая будет возвращать индекс самого наименьшего элемента в массиве.

Поиск в массиве максимального индекса элемента, равного х
помогите запрограммировать фрагмент алгоритма поиска в массиве Ap: =A ; p:=k; p: =0; for k:=l to N do for k:=N downto 1 do ...

Поиск элемента и его индекса в двумерном массиве
Нужна програмка: поиск элемента и его индекса в двумерном массиве. Собственно, помогите, пожалуйста. Нигде нормального решения не нашла....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru