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

Cerința
Se citesc mai multe numere naturale nenule. Fiecare astfel de număr X se va afișa, urmat de un triplet de numere a b c cu proprietatea că a+b+c=X, iar produsul lor este maxim.

Date de intrare
Fișierul de intrare produsmaxim.in conține mai multe numere naturale separate prin spații și scrise pe unul sau mai multe rânduri.

Date de ieșire
Fișierul de ieșire produsmaxim.out va conține pe mai multe linii valorile X a b c separate printr-un spațiu, reprezentând numărul și tripletul corespunzător acestuia, pentru fiecare număr citit din fișierului de intrare.

Restricții și precizări
vor fi cel mult 100.000 de numere în fișierul de intrare
numerele citite vor fi mai mici decât 10.000.000
a ≤ b ≤ c
fiecare rând din fișierul de intrare va conține exact patru valori, conform cerinței

Exemplu
produsmaxim.in

7 5
produsmaxim.out

7 2 2 3
5 1 2 2
Explicație
În fișierul de intrare se găsesc două numere 7 și 5, iar fișierul de ieșire va avea două linii, cu valorile cerute (de exemplu, dintre toate tripletele în care se poate descompune 7: 1+2+4, 1+3+3, 2+2+3, produsul 2*2*3 este cel mai mare).

Răspunsuri la întrebare

Răspuns de boiustef
4

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("produsmaxim.in");

ofstream g("produsmaxim.out");

int main()

{

   int num, a, b, c;

   while (f >> num)

   {

       a=num/3;

       if (num%3==0) { b=a; c=a;}

       if (num%3==1) { b=a; c=a+1;}

       if (num%3==2) { b=a+1; c=a+1;}

       g << num << " " << a << " " << b << " " << c << "\n";

   }

   return 0;

}


sp4c3m4ng4m3r: seems legit...
Alte întrebări interesante