Informatică, întrebare adresată de mirynis, 8 ani în urmă

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?
mirynis: Da :(
Kazy23: 7+2-1+4=12
Kazy23: iti ia secventa de la 7 la 4

Răspunsuri la întrebare

Răspuns de alle13m
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


filipdenisa30: poți sa postezi și pe 1 și 2?
alle13m: la ex 2 : int n,m,i,j,v[25]={0},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< }
alle13m: si la 1 : int putere(int n,int p)
{
int nr=0;
if(n%p==0)
{
while(n%p==0)
{
n=n/p;
nr++;
}
}
else
return -1;
return nr;
}
bettybup: ce exercitii sunt astea? au legatura cu problema?
alle13m: sunt exercitiile 1 si 2 de la subiectul 3 din testul de antrenament in care apare problema asta
Alte întrebări interesante