Fișierul bac.txt conține un șir de cel mult 106 numere întregi din intervalul [-103,103], separate prin câte un spațiu. Se cere să se afișeze pe ecran suma maximă obținută adunând numere de pe poziții consecutive în șirul aflat în fișier. Proiectați un algoritm eficient din punctul de vedere al memoriei utilizate și al timpului de executare.
Exemplu: dacă fișierul bac.txt conține valorile 4 -6 7 2 -1 4 -10 -3 9 2 -2 se afișează pe ecran numărul 12
Laur277:
Sigur trebuie sa dea 12?
Răspunsuri la întrebare
Răspuns de
22
Răspuns:
int main()
{
int x,sc,scmax;
sc=scmax=0;
f>>x;
sc=scmax=x;
while(f>>x)
{
if(sc>0)
sc=sc+x;
else
sc=x;
if(sc>scmax)
scmax=sc;
}
cout<<scmax;
}
Explicație:
sc ii suma locala si scmax ii suma max. daca ai suma < 0 nu te mai intereseaza si sc devine x
cin>>m>>n;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
cin>>x;
if(j==1||j==n)
v[x]++;
}
}
for(i=1;i<=20;i++)
{
if(v[i]==2)
cout< }
{
int nr=0;
if(n%p==0)
{
while(n%p==0)
{
n=n/p;
nr++;
}
}
else
return -1;
return nr;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Franceza,
8 ani în urmă
Religie,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă