<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=4220_-_Alimentarea_Masinii</id>
	<title>4220 - Alimentarea Masinii - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=4220_-_Alimentarea_Masinii"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4220_-_Alimentarea_Masinii&amp;action=history"/>
	<updated>2026-05-02T06:59:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4220_-_Alimentarea_Masinii&amp;diff=9886&amp;oldid=prev</id>
		<title>Benzar Ioan at 21:31, 2 June 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4220_-_Alimentarea_Masinii&amp;diff=9886&amp;oldid=prev"/>
		<updated>2024-06-02T21:31:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=4220_-_Alimentarea_Masinii&amp;amp;diff=9886&amp;amp;oldid=9842&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Benzar Ioan</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4220_-_Alimentarea_Masinii&amp;diff=9842&amp;oldid=prev</id>
		<title>Benzar Ioan: Pagină nouă: == Cerința == Într-un ținut îndepărtat, un șofer trebuie să călătorească de la un capăt la altul al unui drum lung și pustiu. Pe acest drum există benzinării la diverse distanțe de la punctul de plecare. Mașina șoferului are o capacitate limitată a rezervorului, iar șoferul dorește să ajungă la destinație cu un număr minim de opriri la benzinării pentru a alimenta. == Date de intrare == Programul citește de la tastatură:  Un număr întreg distanta_...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4220_-_Alimentarea_Masinii&amp;diff=9842&amp;oldid=prev"/>
		<updated>2024-05-28T15:47:53Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Într-un ținut îndepărtat, un șofer trebuie să călătorească de la un capăt la altul al unui drum lung și pustiu. Pe acest drum există benzinării la diverse distanțe de la punctul de plecare. Mașina șoferului are o capacitate limitată a rezervorului, iar șoferul dorește să ajungă la destinație cu un număr minim de opriri la benzinării pentru a alimenta. == Date de intrare == Programul citește de la tastatură:  Un număr întreg distanta_...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Cerința ==&lt;br /&gt;
Într-un ținut îndepărtat, un șofer trebuie să călătorească de la un capăt la altul al unui drum lung și pustiu. Pe acest drum există benzinării la diverse distanțe de la punctul de plecare. Mașina șoferului are o capacitate limitată a rezervorului, iar șoferul dorește să ajungă la destinație cu un număr minim de opriri la benzinării pentru a alimenta.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură:&lt;br /&gt;
&lt;br /&gt;
Un număr întreg distanta_totala reprezentând distanța totală până la destinație.&lt;br /&gt;
Un număr întreg capacitate_rezervor reprezentând capacitatea rezervorului mașinii.&lt;br /&gt;
Un număr întreg numar_benzinarii reprezentând numărul de benzinării de pe drum.&lt;br /&gt;
O listă de numar_benzinarii numere întregi reprezentând distanțele la care se află benzinăriile de la punctul de plecare.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Pe ecran se va afișa numărul minim de opriri necesare pentru a ajunge la destinație. Dacă nu este posibil să ajungi la destinație, se va afișa &amp;quot;-1&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
distanta_totala = 1000&lt;br /&gt;
capacitate_rezervor = 400&lt;br /&gt;
numar_benzinarii = 4&lt;br /&gt;
benzinarii = [200, 375, 550, 750]&lt;br /&gt;
;Iesire&lt;br /&gt;
2&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
distanta_totala = 500&lt;br /&gt;
capacitate_rezervor = 200&lt;br /&gt;
numar_benzinarii = 3&lt;br /&gt;
benzinarii = [100, 200, 300]&lt;br /&gt;
;Iesire&lt;br /&gt;
-1&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def numar_minim_opriri(distanta_totala, capacitate_rezervor, numar_benzinarii, benzinarii):&lt;br /&gt;
    benzinarii.append(distanta_totala)&lt;br /&gt;
    benzinarii.sort()&lt;br /&gt;
&lt;br /&gt;
    opriri = 0&lt;br /&gt;
    pozitie_curenta = 0&lt;br /&gt;
    carburant_ramas = capacitate_rezervor&lt;br /&gt;
    i = 0&lt;br /&gt;
&lt;br /&gt;
    while pozitie_curenta &amp;lt; distanta_totala:&lt;br /&gt;
        distanta_maxima = pozitie_curenta + carburant_ramas&lt;br /&gt;
     &lt;br /&gt;
        while i &amp;lt; len(benzinarii) and benzinarii[i] &amp;lt;= distanta_maxima:&lt;br /&gt;
            i += 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        if pozitie_curenta == benzinarii[i - 1]:&lt;br /&gt;
            return -1&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
        if pozitie_curenta &amp;lt; distanta_totala:&lt;br /&gt;
            pozitie_curenta = benzinarii[i - 1]&lt;br /&gt;
            carburant_ramas = capacitate_rezervor&lt;br /&gt;
            if pozitie_curenta &amp;lt; distanta_totala:&lt;br /&gt;
                opriri += 1&lt;br /&gt;
&lt;br /&gt;
    return opriri&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    distanta_totala = int(input(&amp;quot;Introduceți distanța totală până la destinație: &amp;quot;))&lt;br /&gt;
    capacitate_rezervor = int(input(&amp;quot;Introduceți capacitatea rezervorului: &amp;quot;))&lt;br /&gt;
    numar_benzinarii = int(input(&amp;quot;Introduceți numărul de benzinării: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    if numar_benzinarii &amp;gt; 0:&lt;br /&gt;
        benzinarii = list(&lt;br /&gt;
            map(int, input(&amp;quot;Introduceți distanțele la care se află benzinăriile, separate prin spațiu: &amp;quot;).split()))&lt;br /&gt;
    else:&lt;br /&gt;
        benzinarii = []&lt;br /&gt;
&lt;br /&gt;
    rezultat = numar_minim_opriri(distanta_totala, capacitate_rezervor, numar_benzinarii, benzinarii)&lt;br /&gt;
&lt;br /&gt;
    if rezultat == -1:&lt;br /&gt;
        print(&amp;quot;Nu este posibil să ajungi la destinație.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(rezultat)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benzar Ioan</name></author>
	</entry>
</feed>