3.
Fişierul bac.in conține un şir de cel mult 10^6 numere întregi din intervalul (-10^9,10^9), 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 secventă este formată din termeni aflați pe pozitii 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).
Scrieți programul C/C++ corespunzător algoritmului proiectat.
Răspunsuri la întrebare
Răspuns de
11
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("bac.in");
int main()
{
int x,nr1=0,nr2=0,nr=0,ok=0;
while(f>>x)
{
nr++;
if(x<0)
{
ok=1;
nr2=nr;
}
if(ok==1)
nr1++;
}
if(nr2<nr1)
cout<<nr1;
else
cout<<nr2;
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Istorie,
9 ani în urmă