<?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=2510_-_vsecvente</id>
	<title>2510 - vsecvente - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2510_-_vsecvente"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2510_-_vsecvente&amp;action=history"/>
	<updated>2026-05-01T23:23:42Z</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=2510_-_vsecvente&amp;diff=9922&amp;oldid=prev</id>
		<title>Benzar Ioan: Pagină nouă: == Cerința == Considerăm un șir de numere naturale nenule a[1], a[2], …, a[n]. În acest șir o V-secvență este o secvență maximală de forma a[x], a[x+1], …, a[y] cu proprietatea că toate numerele din secvență au valori mai mici sau egale cu V. Este maximală pentru că nu poate fi extinsă spre stânga sau spre dreapta. De exemplu, șirul a = 2, 2, 6, 4, 3, 14, 7, 4, 3, 36 are două 7-secvențe: 2, 2, 6, 4, 3 și 7, 4, 3. De asemenea, șirul are trei 4-secven...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2510_-_vsecvente&amp;diff=9922&amp;oldid=prev"/>
		<updated>2024-06-03T03:24:06Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Considerăm un șir de numere naturale nenule a[1], a[2], …, a[n]. În acest șir o V-secvență este o secvență maximală de forma a[x], a[x+1], …, a[y] cu proprietatea că toate numerele din secvență au valori mai mici sau egale cu V. Este maximală pentru că nu poate fi extinsă spre stânga sau spre dreapta. De exemplu, șirul a = 2, 2, 6, 4, 3, 14, 7, 4, 3, 36 are două 7-secvențe: 2, 2, 6, 4, 3 și 7, 4, 3. De asemenea, șirul are trei 4-secven...&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;
Considerăm un șir de numere naturale nenule a[1], a[2], …, a[n]. În acest șir o V-secvență este o secvență maximală de forma a[x], a[x+1], …, a[y] cu proprietatea că toate numerele din secvență au valori mai mici sau egale cu V. Este maximală pentru că nu poate fi extinsă spre stânga sau spre dreapta. De exemplu, șirul a = 2, 2, 6, 4, 3, 14, 7, 4, 3, 36 are două 7-secvențe: 2, 2, 6, 4, 3 și 7, 4, 3. De asemenea, șirul are trei 4-secvențe: 2,2; 4,3; 4,3. De notat că 2,6,4,3 nu este 7-secvență, deoarece poate fi extinsă la capătul său stâng cu numărul 2.&lt;br /&gt;
Pentru un șir de numere dat, trebuie să răspundeți la Q întrebări notate V[1], V[2],…, V[Q]. Pentru fiecare întrebare i, dată prin numărul natural V[i], trebuie să aflați câte V[i]-secvențe sunt în șir.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare vsecvente.in conține pe prima linie numărul natural N. Pe a doua linie, separate prin câte un spațiu, se află cele N elemente ale șirului. Pe a treia linie se află un singur număr natural Q reprezentând numărul de întrebări. Pe a patra linie, se află șirul de Q numere naturale V[1], V[2],…, V[Q], separate prin câte un spațiu.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire vsecvente.out va conține Q linii. Linia a i-a va conține numărul de V[i]-secvențe aflate în șir.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
*1 ≤ toate numerele din fișierul de intrare ≤ 1 100 000&lt;br /&gt;
*Pentru teste totalizând 75 puncte, 1 ≤ toate numerele din fișierul de intrare ≤ 550 000&lt;br /&gt;
;Intrare&lt;br /&gt;
10&amp;lt;br&amp;gt;&lt;br /&gt;
2 2 6 4 3 14 7 4 3 36&amp;lt;br&amp;gt;&lt;br /&gt;
3&amp;lt;br&amp;gt;&lt;br /&gt;
7 1 4&lt;br /&gt;
;Iesire&lt;br /&gt;
2&amp;lt;br&amp;gt;&lt;br /&gt;
0&amp;lt;br&amp;gt;&lt;br /&gt;
3&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea datelor de intrare&lt;br /&gt;
    with open(&amp;#039;vsecvente.in&amp;#039;, &amp;#039;r&amp;#039;) as f:&lt;br /&gt;
        data = f.read().splitlines()&lt;br /&gt;
&lt;br /&gt;
    # Prima linie conține numărul N&lt;br /&gt;
    N = int(data[0].strip())&lt;br /&gt;
&lt;br /&gt;
    # Asigurăm că 1 ≤ N ≤ 100000&lt;br /&gt;
    assert 1 &amp;lt;= N &amp;lt;= 100000, &amp;quot;N trebuie să fie între 1 și 100000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # A doua linie conține N elemente ale șirului&lt;br /&gt;
    sir = list(map(int, data[1].strip().split()))&lt;br /&gt;
&lt;br /&gt;
    # Verificăm că lungimea șirului este corectă&lt;br /&gt;
    assert len(sir) == N, &amp;quot;Lungimea șirului trebuie să fie N&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # A treia linie conține numărul de întrebări Q&lt;br /&gt;
    Q = int(data[2].strip())&lt;br /&gt;
&lt;br /&gt;
    # Asigurăm că 1 ≤ Q ≤ 100000&lt;br /&gt;
    assert 1 &amp;lt;= Q &amp;lt;= 100000, &amp;quot;Q trebuie să fie între 1 și 100000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # A patra linie conține Q valori pentru interogări&lt;br /&gt;
    interogari = list(map(int, data[3].strip().split()))&lt;br /&gt;
&lt;br /&gt;
    # Verificăm că lungimea interogărilor este corectă&lt;br /&gt;
    assert len(interogari) == Q, &amp;quot;Numărul interogărilor trebuie să fie Q&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Asigurăm că toate elementele din șir sunt între 1 și 1,000,000,000&lt;br /&gt;
    for elem in sir:&lt;br /&gt;
        assert 1 &amp;lt;= elem &amp;lt;= 1000000000, &amp;quot;Elementele șirului trebuie să fie între 1 și 1,000,000,000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Asigurăm că toate interogările sunt între 1 și 1,000,000,000&lt;br /&gt;
    for interogare in interogari:&lt;br /&gt;
        assert 1 &amp;lt;= interogare &amp;lt;= 1000000000, &amp;quot;Interogările trebuie să fie între 1 și 1,000,000,000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    rezultate = []&lt;br /&gt;
&lt;br /&gt;
    # Pentru fiecare interogare, calculăm numărul de secvențe maxime pentru valoarea V&lt;br /&gt;
    for V in interogari:&lt;br /&gt;
        count = 0&lt;br /&gt;
        in_sequence = False&lt;br /&gt;
        for num in sir:&lt;br /&gt;
            if num &amp;lt;= V:&lt;br /&gt;
                if not in_sequence:&lt;br /&gt;
                    in_sequence = True&lt;br /&gt;
                    count += 1&lt;br /&gt;
            else:&lt;br /&gt;
                in_sequence = False&lt;br /&gt;
        rezultate.append(count)&lt;br /&gt;
&lt;br /&gt;
    # Scrierea rezultatelor în fișierul de ieșire&lt;br /&gt;
    with open(&amp;#039;vsecvente.out&amp;#039;, &amp;#039;w&amp;#039;) as f:&lt;br /&gt;
        for rezultat in rezultate:&lt;br /&gt;
            f.write(f&amp;quot;{rezultat}\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>Benzar Ioan</name></author>
	</entry>
</feed>