
마음 편하게 짜면 되는 그리디 문제다.
오답이 나올 여지가 없는 문제라서 정말 힐링이 된다.
금액이 큰 단위의 동전부터 최대한 사용하면 되기 때문에 입력받은 순서 반대로 그리디를 돌리면 된다.
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
constexpr bool local = true;
#else
constexpr bool local = false;
#endif
#define FASTIO ios_base::sync_with_stdio;cin.tie(nullptr);
#define debug if constexpr (local) std::cout
#define endl '\n'
int main(){
	int N, K; cin >> N >> K;
	vector<int> coin;
	int cnt = 0;
	
	for (int i = 0; i < N; i++){
		int t; cin >> t;
		coin.push_back(t);
	}
	
	for (int i = N-1; i >= 0; i--){
		int val = coin[i];
		int tmp = K/val;
		cnt += tmp;
		K -= val*tmp;
	}
	
	cout << cnt;
}