#include <iostream>
using namespace std;
#define IAMFAST ios_base::sync_with_stdio(false);cin.tie(0);
typedef long long ll;
ll n, w;
ll s[17];
void INPUT()
{
IAMFAST
cin >> n >> w;
for (int i = 1; i <= n; i++) cin >> s[i];
}
void solution()
{
ll coin = 0;//정답의 범위가 int형을 초과하므로 주의한다.
for (int i = 1; i <= n; i++)
{
//다음날 가격이 오른다면, 가능한 만큼 코인을 매수한다.
if (s[i] < s[i + 1]) coin += w / s[i], w -= (w / s[i]) * s[i];
//다음날 가격이 내린다면, 모든 코인을 매도한다.
else if (s[i] > s[i + 1]) w += coin * s[i], coin = 0;
}
cout << w;
}
int main()
{
INPUT();
solution();
}
GOLD5 미만 난이도는 알고리즘 및 풀이 설명을 주석으로 대체합니다.
주석을 참고해주세요.