class Solution {
public:
int nthSuperUglyNumber(int n, vector<int>& primes) {
vector<int> dp(n); // 表示超级丑数
int m = primes.size();
vector<int> index(m);
dp[0] = 1;
for(int i=1;i<n;i++){
int tmp = INT_MAX;
for(int j=0;j<m;j++){
tmp = min(tmp,dp[index[j]]*primes[j]);
}
for(int j=0;j<m;j++){
if(tmp==dp[index[j]]*primes[j]){
dp[i] = tmp;
index[j]++;
}
}
}
return dp[n-1];
}
};