1 solutions
-
0
不是多组输入(超时两次)
#include <bits/stdc++.h> using namespace std; int s[1507]; int min(int a,int b,int c){ if(a<b) return a<c?a:c; return b<c?b:c; } void initialization(){ s[1]=1; int f2=2,f3=3,f5=5,i=2,i2=2,i3=2,i5=2; while(i<1600){ s[i]=min(f2,f3,f5); if(s[i]==f2) f2=s[i2++]*2; if(s[i]==f3) f3=s[i3++]*3; if(s[i]==f5) f5=s[i5++]*5; i++; } } int main(){ initialization(); int n,x; scanf("%d",&n); while(n--){ scanf("%d",&x); printf("%d\n",s[x]); } return 0; }
- 1
Information
- ID
- 1539
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- # Submissions
- 13
- Accepted
- 5
- Uploaded By