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

Rezolvați următoarele probleme:


Se citesc de la tastatură mai multe șiruri de numere, fiecare şir de numere naturale nenule se termină cu citirea numărului 0 (care se consideră că nu face parte din şirul respectiv) şi conţine cel puţin două valori. Citirea tuturor șirurilor se termină cu citirea valorii -1.

Se cere să se afişeze valoarea maximă din şirul care conţine cele mai puţine numere. În cazul în care există mai multe şiruri cu acelaşi număr minim de numere, se va afişa cea mai mare valoare care apare în unul dintre aceste şiruri.

Răspunsuri la întrebare

Răspuns de lucaciucandrei
0

COROANA TE ROG!!!

#include <bits/stdc++.h>

using namespace std;  

int main() {

   int n=0;

   int a[100000];

   a[0]=0;

   n=1;

   while(cin >> a[n])

       n++;

   int l = 0 , lmax = 100000 , st , dr;

   for(int i = 1 ; i < n ; ++i)

   {

       if(a[i]==0)

       {

           if(l<lmax && l>0)

           lmax=l , st=i-l , dr=i;

           l=0;

       }

       else

       l++;

   }

   int max=0;

   for(int i = 1 ; i < n ; ++i)

   {

       if(a[i]==0)

       {

           if(l==lmax)

           {

               for(int j = i - lmax ; j <= i ; ++j)

                   if(a[j]>max)

                       max=a[j];

           }

           l=0;

       }

       else

       l++;

   }

   cout << max;

}

Alte întrebări interesante