http://acm.xidian.edu.cn/problem.php?id=1023
因为区间不重复,所以就好办了。
把l和r、id分开保存,排序后下标还是对应的,偷懒直接用lowerbound解决。
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int f(int x) { int now = 5,ans = 0; while(now <= x) { ans += x/now; now *= 5; } return ans; } int main() { int T,n; scanf("%d",&T); while(T--) { scanf("%d",&n); int ans = n*4; while(f(ans) < n) ans++; if(f(ans) == n) printf("%d\n",ans); else printf("No solution\n"); } return 0; }
时间: 2024-10-26 17:50:24