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

Cerința
Gigel a aflat care este este secretul succesului în afacerile cu pinguini: să cumperi ieftin și să vinzi scump. El a reușit să afle care vor fi prețurile de vânzare a pinguinilor pe o perioadă de n zile. În plus, Gigel dispune de o sumă de bani S, și este hotărât să procedeze astfel: într-o zi va cumpăra numărul maxim posibil de pinguini la prețul din ziua respectivă, iar în altă zi îi va vinde pe toți pe prețul din acea zi. Determinați suma maximă pe care o poate deține Gigel după efectuarea acestor tranzacții.

Date de intrare
Programul citește de la tastatură numerele n S, iar apoi n numere naturale, reprezentând prețului unui pinguin în fiecare dintre cele n zile.

Date de ieșire
Programul va afișa pe ecran numărul M, reprezentând suma maximă pe care o poate deține Gigel în urma tranzacțiilor.

Restricții și precizări
1 ≤ n ≤ 1000
atât S, cât și cele n numere citite vor fi nenule și mai mici decât 10.000
toate prețurile sunt exprimate în aceleași unități monetare

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

Explicație:

#include <iostream>

using namespace std;

int n, S, i, j, p[1002], imin, imax, M, ping, dif, difmax;

int main()

{

   cin >> n >> S;

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

       cin >> p[i];

   difmax=p[2]-p[1]; imin=1; imax=2;

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

   {

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

       {

           dif=p[j]-p[i];

           if (dif>difmax)

           {

               difmax=dif;

               imin=i; imax=j;

           }

       }

   }

   ping=S/p[imin];

   M=S%p[imin] + ping*p[imax];

   cout << M;

}

Alte întrebări interesante