Informatică, întrebare adresată de morcov64, 9 ani în urmă

AJUTOR
Cerința
Se consideră un şir format din n numere întregi. Șirul conține cel puțin un număr pozitiv. Să se determine lungimea maximă a unei secvenţe din şir care are proprietatea că este formată doar din valori strict pozitive.

Date de intrare
Fișierul de intrare platou3.in conține pe prima linie numărul n, iar pe a doua linie n numere întregi separate prin spații.

Date de ieșire
Fișierul de ieșire platou3.out va conține pe prima linie numărul k, reprezentând lungimea maximă a secvenței determinate.

Restricții și precizări
1 ≤ n ≤ 1000
numerele de pe a doua linie a fișierului de intrare vor fi din intervalul [-99,99]
O secvenţă a unui şir constă în elemente aflate pe poziţii consecutive în şirul considerat.

Exemplu
platou3.in

10
7 -22 -13 10 31 41 -6 2 10 8
platou3.out

3
Explicație
În fișierul de intrare, secvențele de lungime maximă (k=3) sunt: 10 31 41 și 2 10 8.

Răspunsuri la întrebare

Răspuns de Razzvy
8
#include <fstream>
using namespace std;

ifstream fin("platou3.in");
ofstream fout("platou3.out");

int main()
{
    int n, x, secv = 0, mx = 0;
    
    fin>>n;
    for(int i = 0; i < n; i++)
       {
       fin>>x;
       if(x > 0) secv++;
       else
       {
           
          if(secv > mx) mx = secv;
             secv = 0;
       }        
    }
    if(secv > mx) mx = secv;
    
    fout<<mx;
}
Răspuns de stassahul
10
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("platou3.in");
ofstream fout ("platou3.out");

int n,x,y,k,Max=1;

int main()
{

    fin >> n;

    for(int i=1;i<=n;i++)
    {
        fin >> x;
        if(i>1 and x>0 and y>0)
            Max++;
        else
            Max=1;
        if(Max>k)
            k=Max;
        y=x;
    }

    fout << k;

    return 0;

}

Alte întrebări interesante