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

in c++, mersi anticipat.​

Anexe:

Răspunsuri la întrebare

Răspuns de Zecmens
0

Răspuns:

#include <iostream>

using namespace std;

 

int main()

{

   int n, fr1[10] = {}, fr2[10] = {}, x, s = 1;

   cin >> n;

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

   {

       cin >> x;

       if (i > 5)

           fr2[x]++;

       else

           fr1[x]++;

   }

   int j = 0;

   for (int i = 0; i <= 9; i++)

   {

       while (fr1[i])

       {

           if (i % 2 == 0)

               j = 1;

           else

               j = 0;

           for (j; j <= 9; j += 2)

               while (fr2[j])

                   s = s * (i + j), fr2[j]--;

           fr1[i]--;

       }

   }

   cout << s-1;

   return 0;

}

Explicație:

Sincer sa fiu habar nu am daca acesta este rezolvarea optima sau corecta am stat putin timp sa ma gandesc la ea si cu rezolvarea asta am ajuns la capat, normal s - ul imi da 45 totusi nu gasesc un motiv anume pentru oricare sir de numere as da, in caz de te-am inspirat si ti-ai dat seama de rezolvare te rog sa ma anunti si pe mine, mersi :))

Alte întrebări interesante