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

La problema #1471 de pe pbinfo iau 94 de puncte cu acest cod, imi puteti zice, daca va dati seama, unde am gresit?

Cod -> https://pastebin.com/4X8hLCEv

-> Problema rezolvata!

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("maxdiv.in");

ofstream g("maxdiv.out");

int n,i,x[1001],nd[1001],nrmaxdiv,contormaxdiv,c,num,v;

int lensecv, lensecvmax,st,dr,k,ind[1000];

int nrdiv(int num)

{

   int d=0,j;

   for (j=1; j*j<num; ++j)

       if (num%j==0) d+=2;

   if (j*j==num) ++d;

   return d;

}

int main()

{

   f >> n >> c;

   f >> num;

   x[0]=num; nd[0]=nrdiv(num);

   nrmaxdiv=nd[0]; ++contormaxdiv;

   ind[k]=0;

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

   {

       f >> num;

       x[i]=num; v=nrdiv(num);

       nd[i]=v;

       if (v>nrmaxdiv)

           { nrmaxdiv=v; contormaxdiv=1; k=0; ind[k]=i; }

       else

       {

           if (v==nrmaxdiv) { ++contormaxdiv; ++k; ind[k]=i; }

       }

   }

   if (c==1) g << contormaxdiv-1;

   else

   {

      lensecvmax=ind[1]-ind[0] +1;

      st=ind[0]; dr=ind[1];

      for (i=1; i<k; ++i)

      {

          lensecv=ind[i+1]-ind[i] +1;

          if (lensecv>lensecvmax)

          {

              lensecvmax=lensecv; st=ind[i]; dr=ind[i+1];

          }

      }

       for (i=st; i<=dr; ++i )

       g << x[i] << " ";

   }

}

Explicație:

salut! până ce cercetează codul meu de 100 (foarte proaspăt...)

acum mă uit şi la codul tău...


boiustef: dar ce-ţi scrie la testele ce nu trec?
ProMinecraft69: Am editat mai sus ca am rezolvat problema, va multumesc!
ProMinecraft69: La 10 minute dupa ce am postat am reusit sa depistez problema :))
boiustef: bravo!
Alte întrebări interesante