<?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=3015_-_Fibo_Interval</id>
	<title>3015 - Fibo Interval - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3015_-_Fibo_Interval"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3015_-_Fibo_Interval&amp;action=history"/>
	<updated>2026-05-01T17:48:11Z</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=3015_-_Fibo_Interval&amp;diff=10019&amp;oldid=prev</id>
		<title>AjM: Pagină nouă: == Cerinţa == Se dă șirul lui Fibonacci: f1=1, f2=1, f3=2, f4=3, f5=5, …, definit astfel fk+2 = fk+1 + fk, k&gt;2.  Se dau Q query-uri de forma ab. Se cere să se afișeze pentru fiecare query fa, fb și suma elementelor fk din șirul lui Fibonacci cu a≤k≤b. == Date de intrare == Fișierul de intrare fibointerval.in conține pe prima linie numerele n si Q, iar pe următoarele Q linii câte două numere a si b reprezentând query-urile. == Date de ieșire == Fișierul de...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3015_-_Fibo_Interval&amp;diff=10019&amp;oldid=prev"/>
		<updated>2024-06-03T16:58:48Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Se dă șirul lui Fibonacci: f1=1, f2=1, f3=2, f4=3, f5=5, …, definit astfel fk+2 = fk+1 + fk, k&amp;gt;2.  Se dau Q query-uri de forma ab. Se cere să se afișeze pentru fiecare query fa, fb și suma elementelor fk din șirul lui Fibonacci cu a≤k≤b. == Date de intrare == Fișierul de intrare fibointerval.in conține pe prima linie numerele n si Q, iar pe următoarele Q linii câte două numere a si b reprezentând query-urile. == Date de ieșire == Fișierul de...&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;
Se dă șirul lui Fibonacci: f1=1, f2=1, f3=2, f4=3, f5=5, …, definit astfel fk+2 = fk+1 + fk, k&amp;gt;2.&lt;br /&gt;
&lt;br /&gt;
Se dau Q query-uri de forma ab. Se cere să se afișeze pentru fiecare query fa, fb și suma elementelor fk din șirul lui Fibonacci cu a≤k≤b.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare fibointerval.in conține pe prima linie numerele n si Q, iar pe următoarele Q linii câte două numere a si b reprezentând query-urile.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire fibointerval.out va conține pe fiecare linie, în ordine, rezultatul celor Q query-uri, cele 3 valori care trebuie afișate fiind separate prin câte un spațiu.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 ≤ n ≤ 1000&lt;br /&gt;
* 1 ≤ Q ≤ 10000&lt;br /&gt;
* 1 ≤ a ≤ b ≤ n&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; fibointerval.in&lt;br /&gt;
 10 3&lt;br /&gt;
 1 3&lt;br /&gt;
 3 5&lt;br /&gt;
 2 8&lt;br /&gt;
; fibointerval.out&lt;br /&gt;
 1 2 4&lt;br /&gt;
 2 5 10&lt;br /&gt;
 1 21 53&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație ==&lt;br /&gt;
n=10 și Q=3.&lt;br /&gt;
Primul query: a=1, b=3, rezultă că f1=1, f3=2, iar suma elementelor cu indici cuprinși intre a și b este 4.Al doilea query: a=3, b=5, rezultă că f3=2, f5=5, iar suma elementelor cu indici cuprinși intre a și b este 10.Al treilea query: a=2, b=8, rezultă că f2=1, f8=21, iar suma elementelor cu indici cuprinși intre a și b este 53.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def generate_fibonacci(n):&lt;br /&gt;
    fibonacci = [1, 1]&lt;br /&gt;
&lt;br /&gt;
    for i in range(2, n):&lt;br /&gt;
        fibonacci.append(fibonacci[i-1] + fibonacci[i-2])&lt;br /&gt;
&lt;br /&gt;
    return fibonacci&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&amp;quot;fibointerval.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        n, Q = map(int, fin.readline().split())&lt;br /&gt;
        queries = [tuple(map(int, fin.readline().split())) for _ in range(Q)]&lt;br /&gt;
&lt;br /&gt;
    fibonacci = generate_fibonacci(n)&lt;br /&gt;
&lt;br /&gt;
    with open(&amp;quot;fibointerval.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        for a, b in queries:&lt;br /&gt;
            fa = fibonacci[a - 1]&lt;br /&gt;
            fb = fibonacci[b - 1]&lt;br /&gt;
            fib_sum = sum(fibonacci[a - 1:b])&lt;br /&gt;
            fout.write(f&amp;quot;{fa} {fb} {fib_sum}\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>AjM</name></author>
	</entry>
</feed>