Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 1
Регистрация: 07.10.2019
Сообщений: 18

Что нужно добавить в код? Задача про такси

03.11.2019, 14:50. Показов 2410. Ответов 2
Метки c# (Все метки)

Студворк — интернет-сервис помощи студентам
сама задача : После затянувшегося совещания директор фирмы решил заказать такси, чтобы развезти сотрудников по домам. Он заказал N машин — ровно столько, сколько у него сотрудников. Однако когда они подъехали, оказалось, что у каждого водителя такси свой тариф за 1 километр.
Директор знает, какому сотруднику сколько километров от работы до дома (к сожалению, все сотрудники живут в разных направлениях, поэтому нельзя отправить двух сотрудников на одной машине). Теперь директор хочет определить, какой из сотрудников на каком такси должен поехать домой, чтобы суммарные затраты на такси (а их несет фирма) были минимальны.

Формат ввода
Сначала во входном файле записано натуральное число N (1≤N≤1000) — количество сотрудников компании (совпадающее с количеством вызванных машин такси). Далее записано N чисел, задающих расстояния в километрах от работы до домов сотрудников компании (первое число — для первого сотрудника, второе — для второго и т.д.). Все расстояния — положительные целые числа, не превышающие 1000. Далее записано еще N чисел — тарифы за проезд одного километра в такси (первое число — в первой машине такси, второе — во второй и т.д.). Тарифы выражаются положительными целыми числами, не превышающими 10000.
Формат вывода
В выходной файл выведите N чисел. Первое число — номер такси, в которое должен сесть первый сотрудник, второе число — номер такси, в которое должен сесть второй и т.д., чтобы суммарные затраты на такси были минимальны. Если вариантов рассадки сотрудников, при которых затраты минимальны, несколько, выведите любой из них. Затем, в новой строке выведите одно целое число - наименьшую сумму, которую придётся заплатить за доставку сотрудников.

Как вывести сумму ,которую нужно будет заплатить -я понял, но как вывести кто в какое такси должен сесть- не понял. что нужно добавить в код?

Сам код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace такси
{
    class Program
    {
        static void Main(string[] args)
        {
            int x;
            int sotrud = int.Parse(Console.ReadLine());
            int[] rast = new int[sotrud];
            string[] s = (Console.ReadLine()).Split(' ');
            for (int i = 0; i < sotrud; i++)
                rast[i] = int.Parse(s[i]);
            int[] tarif = new int[sotrud];
            string[] l = (Console.ReadLine()).Split(' ');
            for (int i = 0; i < sotrud; i++)
                tarif[i] = int.Parse(l[i]);
 
            
            for (int i = 1; i < sotrud; i++)
            {
                for (int j = 1; j < sotrud; j++)
                    if (rast[j] > rast[j - 1])
 
                    {
                        x = rast[j];
                        rast[j] = rast[j - 1];
                        rast[j - 1] = x;
                    }
            }
            for (int i = 1; i < sotrud; i++)
 
            { for (int j = 1; j < sotrud; j++)
                    if (tarif[j] < tarif[j - 1])
 
                    {
                        x = tarif[j];
                        tarif[j] = tarif[j - 1];
                        tarif[j - 1] = x;
                    }
            }
            x = 0;
            for (int i = 0; i < sotrud; i++)
            {
                x = x + rast[i] * tarif[i];
            }
            
            Console.WriteLine(x);
 
 
}
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.11.2019, 14:50
Ответы с готовыми решениями:

Что нужно добавить в код, чтобы данные из DataGridView сохранялись в БД?
private void Button3_Click(object sender, EventArgs e) { sqlConnection conn=new SqlConnection(); ...

Что нужно добавить чтобы так можно было писать код?
ниже кусок кода ' область связывания переменных с ячейками Сorrect = Worksheets(&quot;dde&quot;).Cells(8, 2) pips =...

Что нужно добавить чтоб работал код вызова картинок в превью
Я вставляю прямо в тело статьи и всё работает, но перестаёт работать когда создаю еще одну статью...Работает только на отдельной одной...

2
 Аватар для Enifan
1846 / 1188 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
03.11.2019, 16:00
Лучший ответ Сообщение было отмечено dasimbad как решение

Решение

dasimbad, в задании можно использовать только массивы? Если да - то создать двумерный массив для сотрудников и такси (примерный вид каждого массива int[2,count]). В первом массиве будут храниться номер сотрудника и расстояние до дома, во 2-ом массиве будут храниться номер такси и тариф за километр. При сортировке надо менять 2 значения в массивах.
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
03.11.2019, 21:11
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            int[] distance, taxi;
            using (var sr = new StreamReader("input.txt"))
            {
                sr.ReadLine();
                distance = sr.ReadLine().Split().Select(int.Parse).ToArray();
                taxi = sr.ReadLine().Split().Select(int.Parse).ToArray();
            }
            var empInd = Enumerable.Range(1, distance.Length).ToArray();
            var taxiInd = Enumerable.Range(1, taxi.Length).ToArray();
            Array.Sort(distance, empInd);
            Array.Sort(taxi, taxiInd);
            Array.Reverse(taxi);
            Array.Reverse(taxiInd);
            Array.Sort(empInd, taxiInd);
            using (var sw = new StreamWriter("output.txt"))
            {
                sw.WriteLine(string.Join(" ", taxiInd));
                sw.WriteLine(distance.Zip(taxi,(x,y) =>x*y).Sum());
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2019, 21:11
Помогаю со студенческими работами здесь

Что нужно добавить к chrome для того, чтобы отлаживать код в нем?
Добрый день Что нужно добавить в Chrome для того чтобы делать отладку в нем. У меня проект в visual studio Там js код. Нажимаю f12 и не...

Что нужно добавить в код, чтоб он сразу не закрывался после завершения цикла
Здравствуйте,подскажите пожалуйста, что нужно добавить в код, чтоб он сразу не закрывался после завершения цикла, и чтоб его предыдущие...

Что нужно добавить в код чтобы текст был и в самом файле и отображался в окне вывода
const n=9; FileName='tabl.txt'; procedure CreateTable(var f:text); Var x, y: Byte; a: array of integer; Begin ...

парни нужно кое-что добавить (нужно что бы эта программа вычисляла среднее арифметическое чисел)
нужно что бы эта программа вычисляла среднее арифметическое чисел, общую сумму, максимальное и минимальлное я сделала, буду очень...

Вложенные циклы и итерации (нужно что бы последовательностью, нужно код усовершенствовать, ну и сам код проверить )
Дано действительное число х. Последовательность a1, a2, ... образована по следующему закону: type mass=array of real; var a:mass; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru