👤
August08
a fost răspuns

O rezolvare fara vector frecventa de aparitie se poate? Voiam prima data sa ordonez crescator numerele fara dubluri dar nu stiu cum sa ma intorc la ele dupa sa aflu r-ul si nu as vrea sa fac cu vector.

O Rezolvare Fara Vector Frecventa De Aparitie Se Poate Voiam Prima Data Sa Ordonez Crescator Numerele Fara Dubluri Dar Nu Stiu Cum Sa Ma Intorc La Ele Dupa Sa A class=

Răspuns :

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("bac.in");

int num, i, v[1001], exista,r;

int main()

{

   while (f >> num)

   {

       v[num]=1;

   }

   num=0;

   while (v[num]==0 && num<1001) ++num;

   i=num+1;

   while (v[i]==0 && i<1001) ++i;

   if (i<1001)

   {

       exista=1;

       r=i-num;

       num=i;

       for (i=num+1; i<1001; ++i)

       {

           if (v[i]==1)

           {

               if ((i-num)!=r) { exista=0; break; }

               num=i;

           }

       }

   }

   if (exista) cout << r;

   else cout << "NU";

}

Explicație:

creăm vectorul caracterisic v, punem în el 1 pe poziţia din vector, egală cu numărul citit. Căutăm primul termen în vector, pentru care v[num]=1. căutăm al doilea termen şi aflăm r. Cu un for verificăm dacă diferenţele dintre două numere (pentru care în vector sunt unităţi) este r