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

Probleme de pe pbinfo
-2533(secventaincadrata)
-2576(Ciurul lui Eratosthenes)
-2329(prim 007)
-1546(mincifre)
Va Rog!!!!!
75 de puncte!!!!

Răspunsuri la întrebare

Răspuns de boiustef
0

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("secventaincadrata.in");

ofstream g("secventaincadrata.out");

int cif, poz[10], lung[10], c, lungmax;

int main()

{

   while (f>>cif)

   {

       ++c;

       if (poz[cif]==0) { poz[cif]=c; lung[cif]=1; }

       else lung[cif]=c-poz[cif]+1;

   }

   for (cif=0; cif<10; ++cif)

       if (lung[cif]>lungmax) lungmax=lung[cif];

   g << lungmax << "\n";

   for (cif=0; cif<10; ++cif)

       if (lung[cif]==lungmax) g << cif << " ";

}

****************************   prim007 2329  ************************

#include <iostream>

using namespace std;

int a[20000], b[10001];

int main()

{

  long long n,i, j, nrp=0, m=20000, num;

   for (i = 2; i <= m; i++)

       a[i] = 1;

   for (i = 2; i*i <= m; i++)

       if (a[i]!=0)

           for (j = 2; j <= m / i; j++)

               a[i*j] = 0;

   cin >> n;

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

   {

       cin >> num; ++b[num];

   }

   if (b[0]*b[2]) nrp=nrp+b[0]*b[2];

   if (b[1]) { m=b[1]-1; if (m%2) nrp=nrp+(m+1)/2*m;

                           else nrp=nrp+m/2*(m+1);}

   for (i=0; i<9999; i+=2)

      for (j=1; j<=9999; j+=2)

          if (a[i+j]) nrp=nrp+b[i]*b[j];

   cout << nrp;

   return 0;

}

**************** mincifre 1546 *********************

#include <iostream>

#include <cstring>

#include <fstream>

using namespace std;

ifstream f("mincifre.in");

ofstream g("mincifre.out");

char ch;

short fr[10], cif, i,j;

int main()

{

   while (f>>ch)

   {

       cif=ch-'0';

       ++fr[cif];

   }

   if (fr[0]>0)

   {

       i=1;

       while (fr[i]==0) ++i;

       g << i;

       --fr[i];

   }

   for (i=0; i<10; ++i)

   {

       for (j=1; j<=fr[i]; ++j)

       {

           g << i;

       }

   }

}

******************** ciurul 2576 *****************************

#include <iostream>

#include <bitset>

using namespace std;

bitset<10000001>v;

int main()

{

   int p=10000001, i, j, n;

   v[0]=1; v[1]=1;

   for(i=2;i<=p/2;++i)

if(v[i]==0)

 for(j=i+i;j<=p;j+=i)

  v[j]=1;

   cin >> n;

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

       { if (v[i]==0)

          {

               cout << i << " ";

          }

       }

   return 0;

}

Alte întrebări interesante