题目描述
农夫约翰想把他编号为1…N(N≤7500)的N头奶牛分成K个非空组(2≤K≤N),使得来自不同组的两头奶牛之间必须行走一定数量的英里才能相互接触。对于奶牛x和奶牛y(其中1≤x<y≤N),它们愿意行走(2019201913x + 2019201949y) mod 2019201997英里去看望对方。
给定将N头奶牛分成K个非空组的划分方式,设M为任意两头来自不同组的奶牛愿意行走的英里数中的最小值。为了测试奶牛们之间的忠诚度,农夫约翰希望将N头奶牛最优地分成K个组,使得M尽可能大。该问题的内存限制为512MB,高于通常的256MB限制。
输入格式
输入只有一行,包含N和K,用空格分隔。
输出格式
输出最优解中的M值。
输入输出样例
输入#1
3 2
输出#1
2019201769
说明/提示
在这个例子中,奶牛1和奶牛2愿意行走2019201817英里去看望对方。奶牛2和奶牛3愿意行走2019201685英里。奶牛1和奶牛3愿意行走2019201769英里。因此,通过将奶牛分为1单独一组、2和3一组,M=min(2019201817, 2019201769)=2019201769(这是此处能达到的最佳结果)。