Loading...
DimovIvan avatar DimovIvan 16 Точки

C++Advanced-Stacks and Queues - Exercise, Truck Tour

Suppose there is a circle. There are N petrol pumps on that circle. Petrol pumps are numbered 0 to (N−1) (both inclusive). You have two pieces of information corresponding to each of the petrol pump: (1) the amount of petrol that particular petrol pump will give, and (2) the distance from that petrol pump to the next petrol pump.
 . You can start the tour at any of the petrol pumps. Calculate the first point from where the truck will be able to complete the circle. Consider that the truck will stop at each of the petrol pumps. The truck will move one kilometer for each liter of the petrol.
Input
The first line will contain the value of N
The next N lines will contain a pair of integers each, i.e. the amount of petrol that petrol pump will give and the distance between that petrol pump and the next petrol pump
Output
An integer which will be the smallest index of the petrol pump from which we can start the tour
Constraints
1 ≤ N ≤ 1000001
1 ≤ Amount of petrol, Distance ≤ 1000000000
Examples
 
Input    Output       
3
1 5
10 3
3 4       1      

 Input    Output 
8
10 1
10 1
10 1
6 6
6 6
6 15
10 5
6 12      0     

Нулевите тестове минават, но другите не. Някой, ако желае, може ли да ми помогне с логиката

https://pastebin.com/xCN7PYUP

Тагове:
0
C++ Advanced
Andyzl avatar Andyzl 17 Точки

Привет!
Аз използвах вместо vector - queue (все пак това е упражнението).
Предимството да използваш queue е , че когато изчетеш реда ( литрите, които дава колонката и килметрите до следващата) можеш да ги push-неш отзад на опашката и след това да ги pop-неш от първата позиция. По този начин, например ако от първата колонка(за зареждане) не можеш да заредиш достатъчно гориво, за да стигнеш до следващата, преминаваш на втората колонка, като първата не изчезва от кръга. 
Надявам се, че съм бил полезен!

1
DimovIvan avatar DimovIvan 16 Точки

Благодаря за насоките! Пробвах да я реша с опашка, но станаха по-зле нещата. Получавам time limit на първите три теста и грешка на последните два. Явно толкова си мога.

https://pastebin.com/L9B4sGXm

0
sninov avatar sninov 3 Точки

Чети входа в queue<vector<int>>, а не във vector<string>. Tака ще можеш после при обработката да добавиш вектора за поредната помпа отзад, като го махнеш отпред.

1
01/06/2021 11:07:28
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.