экспедиция
Лимит времени: 1000 мс | Ограничение памяти: 65536K | |
Всего Материалы: 30702 | Принято: 8457 |
Описание
Группа коров схватила грузовик и отважилась на Глубокой экспедицию в джунгли. Будучи довольно бедных водителей, коровы , к сожалению , удалось бежать через скалу и проткнуть топливный бак грузовика. Грузовик в настоящее время утечки на одну единицу топлива каждую единицу расстояния он перемещается.
Для того, чтобы отремонтировать машину, коров нужно , чтобы добраться до ближайшего города (не более 1000000 единиц отдаленного) по длинной, извилистой дороге. На этом пути, между городом и текущим местоположением грузовика, есть N (1 <= N <= 10000) топлива останавливается , где коровы могут остановить , чтобы приобрести дополнительное топливо (1..100 единиц на каждой остановке).
Джунгли является опасной для жизни людей , и особенно опасно для коров. Таким образом, коровы хотят , чтобы сделать минимально возможное количество остановок для топлива на пути к городу. К счастью, емкость топливного бака на их грузовике настолько велика , что не существует эффективное никаких ограничений на количество топлива , он может содержать. Грузовик в настоящее время L единиц от города и имеет P единицы топлива (1 <= p <= 1 миллион).
Определить минимальное количество остановок , необходимых для достижения города, или если коровы не может добраться до центра города на всех.
Для того, чтобы отремонтировать машину, коров нужно , чтобы добраться до ближайшего города (не более 1000000 единиц отдаленного) по длинной, извилистой дороге. На этом пути, между городом и текущим местоположением грузовика, есть N (1 <= N <= 10000) топлива останавливается , где коровы могут остановить , чтобы приобрести дополнительное топливо (1..100 единиц на каждой остановке).
Джунгли является опасной для жизни людей , и особенно опасно для коров. Таким образом, коровы хотят , чтобы сделать минимально возможное количество остановок для топлива на пути к городу. К счастью, емкость топливного бака на их грузовике настолько велика , что не существует эффективное никаких ограничений на количество топлива , он может содержать. Грузовик в настоящее время L единиц от города и имеет P единицы топлива (1 <= p <= 1 миллион).
Определить минимальное количество остановок , необходимых для достижения города, или если коровы не может добраться до центра города на всех.
вход
* Строка 1: Одно целое число, N
* Линии 2..N + 1: Каждая строка содержит два целых числа , характеризующие топливную остановку: Первое число является расстоянием от города до остановки; во - вторых, количество топлива , доступны на этой остановке.
* Строка N + 2: Два пробела целых числа, L и Р
* Линии 2..N + 1: Каждая строка содержит два целых числа , характеризующие топливную остановку: Первое число является расстоянием от города до остановки; во - вторых, количество топлива , доступны на этой остановке.
* Строка N + 2: Два пробела целых числа, L и Р
Выход
* Строка 1: Одно целое число дает минимальное количество топлива останавливается необходимо добраться до города. Если это не возможно добраться до города, выход -1.
Пример ввода
4 4 4 5 2 11 5 15 10 25 10
Пример вывода
2
намек
ВХОД ДЕТАЛИ:
Грузовик 25 единиц от города; грузовик имеет 10 единиц топлива. Вдоль дороги, есть 4 остановки топлива на расстояниях 4, 5, 11 и 15 от города (так что они изначально на расстояниях 21, 20, 14 и 10 из грузовика). Эти топливные остановки могут поставить до 4, 2, 5 и 10 единиц топлива, соответственно.
OUTPUT ОПИСАНИЕ:
Привод 10 единиц, остановка , чтобы приобрести еще 10 единиц топлива, привод 4 больше единицы, остановку , чтобы приобрести больше 5 единиц топлива, а затем доехать до города.
Грузовик 25 единиц от города; грузовик имеет 10 единиц топлива. Вдоль дороги, есть 4 остановки топлива на расстояниях 4, 5, 11 и 15 от города (так что они изначально на расстояниях 21, 20, 14 и 10 из грузовика). Эти топливные остановки могут поставить до 4, 2, 5 и 10 единиц топлива, соответственно.
OUTPUT ОПИСАНИЕ:
Привод 10 единиц, остановка , чтобы приобрести еще 10 единиц топлива, привод 4 больше единицы, остановку , чтобы приобрести больше 5 единиц топлива, а затем доехать до города.
Источник
1 #include <cstdio> 2 #include <iostream> 3 # include <очереди> 4 #include <алгоритм> 5 6 с использованием пространства имен STD; 7 8 Const INT max_n = 1E4 + 2 ; 9 Const INT max_L = 1E6; 10 Const INT max_P = 1E6; 11 Const INT max_A = max_L; 12 Const INT max_B = 100 ; 13 14 INT N, L, P; 15 INT A [max_n], В [max_n]; 16 . 17 ЬурейеЕ STRUCT узел 18 { 19. INT A, B, 20 }; 21 узел Узел [max_n]; 22 23 24 BOOL CMP (узел А, узел В) 25 { 26 возврата АА < в; 27 } 28 29 аннулируются решить () 30 { 31 // для удобства, будет рассматриваться как конечные станции 32 узлов [п] II.A = L; 33 Узел [п] .B = 0 ; 34 ++n-; 35 36 // массив отсортированных по расстоянию 37 @ вредят мне белую бумагу, что я не нужно сортировать, сумасшедший WA 38 является Sort (Node, узел + n-, СМР); 39 40 // для (INT I = 0; I <н-, я ++) , 41 // { 42 // COUT << Узел [I] II.A << '' << Узел [I] .B << епсИ; 43 // } 44 45 INT АНС = 0 ; 46 47 // масло определяет очереди максимального приоритета могут достичь места хранения 48 priority_queue < INT > кучного; 49 50 для ( INT I =0 ; я <п; ++ I) , 51 { 52 // ток до конца, выходит из цикла 53 ПЧ (Р> = L) , 54 { 55 ПАУЗА ; 56 } 57 // в данный момент недоступен пункт 58 это время (Р < Узел [I] II.A) 59 { 60 // дозаправки, или не опустошить вплоть до 61 ПЧ (heap.empty ()) 62 { 63 на пут ( " -1 " ); 64 возврата ; 65 } 66 ++ АНС; 67 Р = + heap.top (); 68 heap.pop (); 69 } 70 71 // этот момент до текущей точки добавляется в стек 72 heap.push (Node [I] .B); 73 } 74 75 Е ( " % D \ n- " , АНС); 76 } 77 78 INT основных () 79 { 80 Scanf ( " % D " , & п); 81 INT ДИС, топлива; 82 для ( INTI = 0 ; я <п; ++ я) 83 { 84 зсапЕ ( " % d% d " , & дис, и топлива); 85 узел [I] .а = дис; 86 узла [я] .b = топливо; 87 } 88 89 зсапЕ ( " % d% d " , & l, & Р); 90 91 для ( Int I = 0 ; я <п; ++ я) 92 { 93 узла [I] .а = L - узел [I] .a; 94 } 95 решения (); 96 возврата 0 ; 97 }