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 celen
numere citite vor fi nenule și mai mici decât10.000
- toate prețurile sunt exprimate în aceleași unități monetare
Exemplu
Intrare
5 11 3 2 3 5 1
Ieșire
26
Explicație
Gigel va cumpăra 5
pinguini în ziua 2
și îi va vinde în ziua 4
. După tranzacții, va avea 1 + 5 * 5 = 26
unități monetare.
#include <bits/stdc++.h> using namespace std; int main() { int n , s , a[1001] , max = 0; cin >> n >> s; for(int i = 1 ; i <= n ; ++i) cin >> a[i]; for(int i = 1 ; i < n ; ++i) for(int j = i + 1 ; j <= n ; ++j) { int x = s/a[i]; int val = s + (x*a[j])-(x*a[i]); if(val>max) max = val; } cout << max; return 0; }