0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 35
1

Задача: "Автозаправки"

25.02.2019, 17:04. Показов 3124. Ответов 9
Метки нет (Все метки)

Фирма «АйОйЛ» построила на скоростном шоссе Москва-Тверь N автозаправок. Каждая автозаправка имеет свой номер, который присваивался ей при строительстве, начиная с единицы. Кроме того, каждая автозаправка располагается на определенном километре шоссе. Километры на шоссе нумеруются от 0, начиная от Москвы.

Экономические расчеты показали нецелесообразность наличия на данном шоссе такого количества автозаправок, поэтому требуется сократить одну из них. Для максимального удобства автомобилистов необходимо закрыть такую автозаправку, которая имеет минимальное расстояние вдоль шоссе до ближайшей к ней другой автозаправки.

Требуется написать программу, которая находит автозаправку, которую можно сократить.

C++ (Qt)
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
#include <iostream>
 
using namespace std;
 
int main() {
    long long int n, a[100000] = {}, a1 = 0, a2 = 0;
    bool i1 = true, i2 = true;
    cin >> n;
 
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
        if (i1) { i1 = false; a1 = a[i]; }
        else {
            if (i2) { i2 = false;
                if (a[i] < a1) {
                    a2 = a1;
                    a1 = a[i];
                } else a2 = a[i];
            } else { if (a[i] < a1) {
                    a2 = a1;
                    a1 = a[i];
                } else if (a[i] < a2) {
                    a2 = a[i];
                }
            }
        }
    }
           if (a1 == 0) cout << 1;
           else cout << a1;
 
    return 0;
}
Есть такой код, но он не полностью работает
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2019, 17:04
Ответы с готовыми решениями:

"Автозаправки": найти заправку, которую можно сократить
Фирма «АйОйЛ» построила на скоростном шоссе Москва-Тверь N автозаправок. Каждая автозаправка имеет...

Даны три слова - "мама", "мыла", "раму". Задача - напечатать всевозможные варианты построения слов
Я записал код, однако эту часть надо автоматизировать, поможете? КОД: } #include &lt;iostream&gt;...

Необработанное исключение в "0x76f015de" в "контрольная 1 задача 2.exe": 0xC0000005: Нарушение прав доступа при чтении "0x334e2c64"
доброго времени суток. Необработанное исключение в &quot;0x76f015de&quot; в &quot;контрольная 1 задача 2.exe&quot;:...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

9
446 / 332 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
25.02.2019, 20:14 2
Что-то типа такого:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int n;
cin >> n;
 
vector<int> a(n);
for (auto& i : a)
  cin >> i;
 
vector<pair<int, int>> diffs(n - 1);
for (int i = 0; i < n - 1; ++i)
  diffs[i] = {abs(a[i] - a[i + 1]), i + 1};
 
sort(diffs.begin(), diffs.end());
 
cout << diffs[0].second;
0
0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 35
27.02.2019, 19:22  [ТС] 3
Цитата Сообщение от ReDoX Посмотреть сообщение
int n;
cin >> n;
vector<int> a(n);
for (auto& i : a)
* cin >> i;
vector<pair<int, int>> diffs(n - 1);
for (int i = 0; i < n - 1; ++i)
* diffs[i] = {abs(a[i] - a[i + 1]), i + 1};
sort(diffs.begin(), diffs.end());
cout << diffs[0].second;
ReDoX, извините, забыл прикрепить код для проверки:

5
10 3 7 2 5 Должно вывести 2.

Под него ваш код выводит 4.
0
446 / 332 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
27.02.2019, 19:50 4
Eugene Dark,
Цитата Сообщение от Eugene Dark Посмотреть сообщение
автозаправку, которая имеет минимальное расстояние вдоль шоссе до ближайшей к ней другой автозаправки
7 - 3 = 4

5 - 2 = 3

?
0
0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 35
02.03.2019, 23:48  [ТС] 5
ReDoX, думаю, что от 2 до 3 -- минимальное расстояние, поэтому должно вывести 2.
0
446 / 332 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
03.03.2019, 00:05 6
Eugene Dark, 1 - тоже ответ, потому что от 2 до 3 расстояние 1
0
0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 35
03.03.2019, 00:14  [ТС] 7
ReDoX, так нужно автозаправку найти, а не минимальное расстояние.
0
446 / 332 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
03.03.2019, 00:18 8
Eugene Dark, замечательно.

Автозаправки: 2 3 5 7 10

От 1 до 2 расстояние как от 2 до 1. Ответом является что 1, что 2
0
0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 35
03.03.2019, 00:24  [ТС] 9
ReDoX, в условии сказано:
Цитата Сообщение от Eugene Dark Посмотреть сообщение
необходимо закрыть такую автозаправку, которая имеет минимальное расстояние вдоль шоссе до ближайшей к ней другой автозаправки.
Я хз на самом деле.
Ответ должен быть 2. Как реализовать?
0
446 / 332 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
03.03.2019, 00:41 10
Цитата Сообщение от Eugene Dark Посмотреть сообщение
Как реализовать?
Посчитать все разности растояний:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int n;
cin >> n;
 
vector<int> a(n);
for (int i = 0; i < n; ++i)
  cin >> a[i];
 
sort(a.begin(), a.end());
 
vector<pair<int, int>> diffs;
for (int i = 0; i < n - 1; ++i) {
  if (i != 0)
    diffs.push_back({abs(a[i] - a[i - 1]), i + 1});
 
  diffs.push_back({abs(a[i] - a[i + 1]), i + 1});
}
 
sort(diffs.begin(), diffs.end());
 
cout << diffs[0].second;
Чтобы получить 2 в этом тесте, нужно взять diffs[1].second.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2019, 00:41
Помогаю со студенческими работами здесь

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую классы: − воин;...

Задача "замочная скважина" и "ключ" ошибка в коде
Почему-то не работает программа реализующая следующую задачу: Даны мозаичные изображения...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления"
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru