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

problema #1366 de pe pbinfo
Se dau n numere întregi. Să se insereze între oricare două numere de aceeași paritate media lor aritmetică. Algoritmul se va relua în mod repetat până când nu se mai poate adăuga șirului niciun nou element.

exemplu
date de intrare
6
1 41 3 3 4 8
date de iesire
1 41 3 3 4 8
1 21 41 22 3 3 4 6 8
1 11 21 31 41 22 3 3 4 5 6 7 8
1 6 11 16 21 26 31 36 41 22 3 3 4 5 6 7 8

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int a[100001];

int main()

{

   long long int n, i, j, ok=1;

   cin >> n;

   for (i=1; i<=n; ++i) cin >> a[i];

   while (ok)

   {

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

           cout << a[i] << " ";

       cout << "\n";

       ok=0;

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

       if ((a[i]+a[i+1])%2==0 && a[i]!=a[i+1])

      {

       ++n; for (j=n; j>i+1; --j) a[j]=a[j-1];

       a[i+1]=(a[i]+a[i+1])/2; ++i; ++ok;

      }

   }

   return 0;

}

Explicație:

Alte întrebări interesante