0% au considerat acest document util (0 voturi)
773 vizualizări1 pagină

Sub III.3.cpp

Documentul descrie un algoritm pentru a găsi lungimea maximă a unei secvențe dintr-un șir de numere care începe sau se termină cu un număr negativ. Algoritmul parcurge șirul, ține evidența pozițiilor primei și ultimei apariții a unui număr negativ și returnează lungimea maximă dintre cele două secvențe posibile.
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca RTF, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
773 vizualizări1 pagină

Sub III.3.cpp

Documentul descrie un algoritm pentru a găsi lungimea maximă a unei secvențe dintr-un șir de numere care începe sau se termină cu un număr negativ. Algoritmul parcurge șirul, ține evidența pozițiilor primei și ultimei apariții a unui număr negativ și returnează lungimea maximă dintre cele două secvențe posibile.
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca RTF, PDF, TXT sau citiți online pe Scribd

Fişierul bac.

in conţine un şir de cel mult 106 numere întregi din intervalul [-109,109], separate
prin câte un spaţiu. Cel puţin un număr din șir este negativ.
Se cere să se afişeze pe ecran lungimea maximă a unei secvenţe a şirului care fie începe, fie se
încheie cu un număr negativ. O secvenţă este formată din termeni aflaţi pe poziţii consecutive în şir,
iar lungimea secvenței este egală cu numărul de termeni ai acesteia. Proiectați un algoritm eficient
din punctul de vedere al memoriei utilizate şi al timpului de executare.
Exemplu: dacă fişierul conţine numerele 12 25 -6 7 80 -75 101 -6 52 -124 87 99 210
pe ecran se afişează 11 (corespunzător secvenţei -6 7 80 -75 101 -6 52 -124 87 99 210).

#include <iostream>
#include <fstream>

using namespace std;

int x, n = 0, gasit = 0, p1, p2, lsec;


int main ()
{
ifstream f1 ("[Link]");
while (f1 >> x)
{
n++;
if (x < 0)
{
p2 = n;
if (gasit == 0)
{
gasit = 1;
p1 = n;
}
}
}
lsec = n - p1 + 1;
if (lsec > p2)
cout << lsec;
else
cout << p2;
[Link] ();
return 0;
}

S-ar putea să vă placă și