|
|
|
|
#include <bits/stdc++.h>
|
|
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
//<2F>궨<EFBFBD><EAB6A8>long long ==LL
|
|
|
|
|
typedef long long LL;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,2,3,5
|
|
|
|
|
const int coeff[3] = {2, 3, 5};
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,greater---> <20><>ʾ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
|
|
|
|
priority_queue<LL, vector<LL>, greater<LL> > pq;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s
|
|
|
|
|
set<LL> s;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ԫ<EFBFBD><D4AA>,ע<>⣬<EFBFBD><E2A3AC>һ<EFBFBD><D2BB>һ<EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pq.push(1);
|
|
|
|
|
s.insert(1);
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>ң<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ֵֹ<D6B9><D6B5>һֱ<D2BB><D6B1><EFBFBD><EFBFBD>
|
|
|
|
|
for (int i = 1;; i++) {
|
|
|
|
|
//<2F>ҳ<EFBFBD><D2B3><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Ϊ<EFBFBD><CEAA>greater
|
|
|
|
|
LL x = pq.top();
|
|
|
|
|
pq.pop(); //C++<2B><>top<6F><70>pop<6F>Ƿֿ<C7B7><D6BF>ģ<EFBFBD>
|
|
|
|
|
//top<6F><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ջ<EFBFBD><D5BB>Ԫ<EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ջ<EFBFBD><D5BB><EFBFBD>ߵ<EFBFBD>Ԫ<EFBFBD><D4AA>
|
|
|
|
|
//pop<6F><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ջ<EFBFBD><D5BB>Ԫ<EFBFBD>ء<EFBFBD>
|
|
|
|
|
if (i == 1500) {
|
|
|
|
|
cout << "The 1500'th ugly number is " << x << ".\n";
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//0<><30>1<EFBFBD><31>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ؿ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|
|
|
|
for (int j = 0; j < 3; j++) {
|
|
|
|
|
LL x2 = x * coeff[j];
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3>Ž<EFBFBD>ȥ<EFBFBD><C8A5>һ<EFBFBD>η<EFBFBD><CEB7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (!s.count(x2)) {
|
|
|
|
|
s.insert(x2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>Ͳ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>x2<78><32>û<EFBFBD>У<EFBFBD>
|
|
|
|
|
pq.push(x2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|