2591 Set Definition
2591 Set Definition
1338 Ugly Numbersやったらhalwhiteが紹介してくれた類問。
1338は1500番目までのUgly Numbersを求めればよかったから、
Uglys[1500]に格納すれば良かったけど、今度は10,000,000までの
Sを求めなければならないから配列確保できるのか?という疑問が
あったが一応1338を書き換えて手元で実行。。。こあだんぷと。
でもmain関数で宣言してたS[10000000]をグローバルにしたら大丈夫だった。
なんで?
#include<cstdio> #include<algorithm> using namespace std; int S[10000005]; int main() { S[0] = 1; for (int i = 1, i2 = 0, i3 = 0; i < 10000000; ++i) { S[i] = min(S[i2]*2+1, S[i3]*3+1); if (S[i] == S[i2]*2+1) ++i2; if (S[i] == S[i3]*3+1) ++i3; } int n; while (~scanf("%d", &n)) { printf("%d\n", S[n-1]); } }