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

Cerința
Se dă numărul natural n. Să se împartă numerele naturale de la 1 la n în două grupuri astfel încât diferența absolută dintre sumele numerelor din cele două grupuri să fie minimă.

Date de intrare
Programul citește de la tastatură numărul n.

Date de ieșire
Programul va afișa pe ecran pe primul rând numerele din primul grup și pe al doilea rând numerele din al doilea grup, separate prin câte un spațiu. Ordinea afișării nu contează.

Restricții și precizări
2 ≤ n ≤ 100.000

Exemplu
Intrare

5
Ieșire

5 2
4 3 1
in c++ va rog

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
4

#include <iostream>

int main(){

   int n, s1, s2;

   std::cin >> n;

   s1 = s2 = 0;

   for (int i = n; i > 0; i--){

       if (s1 < s2) {

           s1 += i;

           std::cout << i << " ";

       } else {

           s2 += i;

       }

   }

   std::cout << "\n";

   s1 = s2 = 0;

   for (int i = n; i > 0; i--){

       if (s1 < s2) {

           s1 += i;

       } else {

           s2 += i;

           std::cout << i << " ";

       }

   }

   std::cout << "\n";

}


mirunaelena263: ma poți ajuta cu ceva
mirunaelena263: te rog frumos, frumos
Alte întrebări interesante