Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
2 / 1 / 1
Регистрация: 05.11.2023
Сообщений: 24

Задача "Ильназ живет в большом доме" проходит половину тестов

05.11.2023, 14:38. Показов 2922. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень мощный роутер

Условие:


Ильназ живет в большом доме. Его дом выглядит как прямоугольник размера n на m метров.
Ильназ хочет поставить дома один роутер так, чтобы его сигнал доходил, в какой бы точке дома
он не сидел в интернете. У него дома есть k точек, где проведены розетки и он может поставить
роутер. А в лучшем онлайн магазине роутеров есть Q роутеров. Стоимость i-го роутера ci.

Он раздает интернет в любую точку на расстоянии не более wi метров. Но у Ильназа не так много
денег, чтобы просто купить самый мощный роутер, поэтому он хочет купить самый дешёвый, но
подходящий для его дома роутер, а если подходящего роутера нет, то он готов подождать. Помогите
Ильназу подобрать роутер.

Формат входных данных
Первая строка содержит четыре целых числа n, m, k и q — размеры дома, количество точек, где
есть розетки и количество доступных в магазине роутеров.

Следующие k строк содержат по два целых числа ai и bi — координаты розеток.
Следующие q строк содержат по два целых числа wi и ci — расстояние, на которое работает
роутер, и его стоимость.

Формат выходных данных
В единственной строке выведите одно целое число — стоимость подходящего роутера. Если нет
подходящих роутеров, выведите «-1» (без кавычек)


Мой код:


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
struct rout {
    long long distance;
    long long cost;
};
 
bool comp(const rout &r1, const rout &r2) {
    return r1.distance < r2.distance;
}
 
int main() {
    int n, m, k, q;
    cin >> n >> m >> k >> q;
 
    vector<pair<int, int>> outlets(k);
    for (int i = 0; i < k; i++) {
        cin >> outlets[i].first >> outlets[i].second;
    }
 
    vector<rout> routers(q);
    for (int i = 0; i < q; i++) {
        cin >> routers[i].distance >> routers[i].cost;
    }
 
    sort(all(routers), comp);
 
    int minCost = -1;
    for (int i = 0; i < q; i++) {
        bool valid = true;
        for (int j = 0; j < k; j++) {
            int distance = max(abs(outlets[j].first - n), abs(outlets[j].second - m));
            int y = sqrt(distance * distance + distance * distance);
            int nm = ceil(sqrt((abs(outlets[j].first - n) * abs(outlets[j].first - n) +
                             abs(outlets[j].second - m) * abs(outlets[j].second - m))));
            if (distance <= routers[i].distance || y > nm) {
                valid = true;
            }else {
                if (y <= nm || distance > routers[i].distance) {
                    valid = false;
                    break;
                }
            }
 
        }
        if (valid) {
            minCost = routers[i].cost;
            break;
        }
    }
 
    cout << minCost;
}

Подскажите что не так, плиз)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2023, 14:38
Ответы с готовыми решениями:

Задача Мостики проходит 11 тестов из 18
Помогите, пожалуйста Задача №111970. Мостики В стране гномов очень много речек и озер, а сами гномы очень дружны и любят ходить друг к...

Задача про кошелек. Проходит 8 тестов из 10
Доброе время суток, решаю задачу (под спойлером), мое решение проходит 8 из 10 тестов. Я пробовал учесть что если &quot;цены&quot; всех...

Кто в каком доме живет?
Доброго времени суток. К сожалению в прологе не силен,но решить данное задание ох как необходимо. Помогите кто чем сможет На одной...

3
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
05.11.2023, 15:55
Где центр координат и в чём твоя идея? distance - это что?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1819
Регистрация: 18.10.2014
Сообщений: 17,198
07.11.2023, 02:05
Цитата Сообщение от alecsa Посмотреть сообщение
Подскажите что не так, плиз)
Всё не так. Что это за вычисления и как они связаны с поиском решения данной задачи?
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
07.11.2023, 13:20
Если сигнал достает до какого-то квадрата - то считаем, что приём будет во всем квадрате? или область приёма строго ограничена окружностью с центром в розетке?

Сорри, дошло: заданы конкретные координаты розеток, а не "номер квадрата", где расположена розетка
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.11.2023, 13:20
Помогаю со студенческими работами здесь

В доме живет N жильцов. Найти номер самого старшего жителя мужского пола
В доме живет N жильцов. Однажды решили провести перепись всех жильцов данного дома и составили список, в котором указали возраст и пол...

Составить программу, определяющую сколько учеников живёт на ул. Свердлова, списки учеников, живущих в доме номер 45
Описать, используя структуру данных записи, данные на учеников (фамилия, улица дом, квартира. ) Составить программу, определяющую сколько...

Не проходит пара тестов
Не могу отладить решение:cry: Посмотрите пожалуйста у кого есть минутка

Логическая задача (в каком городе живет каждый из ребят)
Однажды в Артеке за круглым столом оказалось пятеро ребят из Москвы, Санкт-Петербурга, Новгорода, Перми, Томска: Денис, Игорь, Иван, Алеша,...

Логическая задача: какое животное живет в какой среде? [SWI Prolog]
Построить базу знаний на основе текста: Живет зебра на земле. Живет собака на земле. Живет карп в воде. Живет кит в воде. Кошка живет...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru