1つ の#define _for(iは、B)(I =(A)がINT;方には<Bと、I ++)は 2 の#define _rep(iは、b)のための式(I =(A)がINT、I> B、I - ) 3 の#define INF 0x3f3f3f3f 4 の#define MOD十億七 5 の#define PBの一back 6 の#define MAXN 100003 7のtypedef 長い 長LL。 8 クラスソリューション 9 { 10 公共: 11 LL KK。 12 LLのAA; 13の LLのBB。 14 LLのCC。 15 AB LL; 16 LL BC; 17 LLのCA; 18 LL ABC。 19 LLのGCD(LLのX、LLのY) 20 { 21 リターン Y GCD(Y、Xの%の?Y):X。 22 } 23 LLのLCM(長い 長い、長い 長いB) 24 { 25 リターン A * B / GCD(A、B)。 26 } 27 BOOL C(LL D) 28 { 29 リターン(D / A-A + D / BB + D / CC-D /(A-B)-D /(CA)-D /(BC)+ D /(ABC)) > =KK; 30 } 31 LL)(解決 32 { 33 LL LB = 0、UB = 2000000001 。 34 一方(LB < UB) 35 { 36 LLミッド= LB +(UB-LB)/ 2 。 37 もし(C(MID))UB = ミッド。 38 他ポンド=ミッド+ 1 ; 39 } 40 リターンポンド; 41 } 42 INT nthUglyNumber(INT N、INT、int型 B、INT c)の 43 { 44 KK = ; nは 45 AA = 。 46の BB =のB。 47 = CC C。 48 AB = LCM(a、b)は、 49 、BC = LCM(B、C)。 50 CA = LCM(C); 51 ABC = LCM(A-B、C)。 52 リターン)(解きます。 53 } 54 }。