题目链接:戳我
正解(100tps):
#include <cstdio>
int main()
{
long long n, m, min, ans;
scanf("%lld %lld", &n, &m);
if (m - n < 2018)
{
min = 2019;
for (long long i = n; i < m; i++)
{
for (long long j = i + 1; j <= m; j++)
{
ans = (i % 2019) * (j % 2019) % 2019;
min = (min > ans) ? ans : min;
}
}
printf("%lld\n", min);
}
else
{
printf("0\n");
}
return 0;
}
优化后的正解(34tps):
#include <cstdio>
#include <cmath>
int main()
{
long long n, m, j, min, ans;
scanf("%lld %lld", &n, &m);
if (m - n < 2018)
{
min = 2019;
for (long long i = n; i <= m / (i + 1); i++)
{
j = ceil(m * 1.0 / i);
ans = (i % 2019) * (j % 2019) % 2019;
min = (min > ans) ? ans : min;
}
printf("%lld\n", min);
}
else
{
printf("0\n");
}
return 0;
}
问:所以说,两者有什么区别?换句话说,对最终答案有什么影响?
挂拍一直没结果
(对于点了这个链接的人,我感到抱歉,因为 我就是想搞个诈骗 这个题目不可见,所以 刻意放了这个链接 随便放了一个链接)