Informatică, întrebare adresată de gamby, 9 ani în urmă

Produs maxim
Se consideră un șir x cu n (3 ≤ n ≤ 10 000) elemente numere întregi mai mari decât -30 000 și mai mici
decât 30 000.
Scrieți un subalgoritm care determină trei elemente din șirul x al căror produs este maxim. Parametrii de
intrare ai subalgoritmului sunt n și x, iar cei de ieșire vor fi a, b și c, reprezentând trei elemente din șirul x,
având proprietatea cerută. Dacă problema are mai multe soluții, determinați una singură.
Exemplu: dacă n = 10 și x = (3, -5, 0, 5, 2, -1, 0, 1, 6, 8), cele trei numere sunt: a = 5, b = 6, c = 8

Eu m-am gandit ca s-ar putea rezolva prin inmultirea elementelor tuturor submultimilor de 3 cifre dar nu stiu cum as putea face acest lucru.


AntiEaglesDavids: ....ummm de ce nu iei cele mai mari 3 numere din sir si le inmultesti?

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
1
#include <bits/stdc++.h>
using namespace std;

constexpr unsigned NMax = 10005;
constexpr short NrMin = -30001;

short x;
int n, a, b, c, sol = 1;
deque<short> maxime({NrMin, NrMin, NrMin});

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++) {
        cin >> x;
        if(x > maxime.front()) {
            maxime.pop_back();
            maxime.push_front(x);
        }
    }

    while(!maxime.empty()) {
        cout <<  maxime.front() << ' ';
        maxime.pop_front();
    }

    return 0;
}



AntiEaglesDavids: misto
AntiEaglesDavids: dau preadmitere defapt ca sunt intr-a XI inca
AntiEaglesDavids: dar practic e tot aia (dau cu aia de a XII-a cand dau)
gamby: eu doar din sem. asta am inceput sa invat info, pana acum eram paralel - daca nu intru acum dau in septembrie, asta e
AntiEaglesDavids: la ce capitol ai ajuns?
gamby: Nu invat sistematic, fac probleme din variante de bac, variante de admitere, pbinfo, adun cunostinte.
AntiEaglesDavids: aha
AntiEaglesDavids: daca cumva nu ti-a iesit o problema nu ezita sa mi-o trimiti
gamby: ok, mai am un cont aici - ardyarde, o sa trimit de pe ala
AntiEaglesDavids: okay
Alte întrebări interesante