题目:I Would Walk 500 Miles
题目链接:https://codeforces.ml/group/5yyKg9gx7m/contest/269908/problem/H
题目描述:由1——n把牛编号,把牛分k组后。不同组的牛相距
(2019201913x+2019201949y) mod 2019201997米,求分组后最大的最短距离。(x<y)
题目分析:
前俩个常数看作-84和-47取模后结果。所以x,y越大距离越小。所以分组时要把小编号单个分一组。那么结果是:
(2019201913(k-1)+2019201949n) mod 2019201997米。
代码:
#include <stdio.h>
int main()
{
long long n,k,p1=2019201913,p2=2019201949,p3=2019201997;
scanf("%lld%lld",&n,&k);
printf("%lld",(p1*(k-1)+p2*n)%p3);
return 0;
}