Fișierul bac.in conține un șir de cel mult 106 numere întregi din intervalul [-10^9,10^9], separate prin câte un spațiu. Cel puțin un număr din șir este pozitiv.
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 pozitiv. 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 -15 -7 4 -7 21 -5 -200 -26 52 -24 -7 -9 -20
pe ecran se afișează 11 (corespunzător secvenței 4 -7 21 -5 -200 -26 52 -24 -7 -9 -20).
Răspunsuri la întrebare
Răspuns de
7
Răspuns:
#include <iostream>
#include<fstream>
using namespace std;
int main()
{
long long int x;
int n=0,p1=0,p2=0,ok=0;
ifstream fin("numere.in");
while(fin>>x)
{ n++;
if(x>0) {ok=1; p2=n;}
if(ok==0||p1==0) p1++;
}
if(p2>n-p1) cout<<p2;
else cout<<p1;
fin.close();
return 0;
}
Explicație:
marinescub701:
scuze, schimba numele fisierului intre ghilimele, aveam gata facut un fisier si am verificat cu el, am uitat sa schimb
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Istorie,
8 ani în urmă
Istorie,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă