55 lines
955 B
Java
55 lines
955 B
Java
package chelper;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import io.InputReader;
|
|
import io.OutputWriter;
|
|
import misc.SimpleSavingChelperSolution;
|
|
|
|
|
|
public class MAXPRODU extends SimpleSavingChelperSolution {
|
|
|
|
public static final long MOD = 1000000007;
|
|
|
|
public void solve(int testNumber, InputReader in, OutputWriter out) {
|
|
wrapSolve(testNumber, in, out);
|
|
}
|
|
|
|
@Override
|
|
public void solve(int testNumber) {
|
|
long n = in.nextLong();
|
|
long k = in.nextLong();
|
|
|
|
if (n < (1 + k) * k / 2) {
|
|
out.println(-1);
|
|
return;
|
|
}
|
|
|
|
long[] a = new long[(int) k];
|
|
|
|
long next = 1;
|
|
long left = n;
|
|
int i = 0;
|
|
|
|
while (i < k) {
|
|
long sum = (next + next + k - i - 1) * (k - i) / 2;
|
|
if (sum > left) {
|
|
left -= a[i];
|
|
i++;
|
|
continue;
|
|
}
|
|
|
|
a[i] = next;
|
|
next++;
|
|
}
|
|
|
|
long res = 1;
|
|
for (long j : a) {
|
|
res *= (j * j - j) % MOD;
|
|
res %= MOD;
|
|
}
|
|
|
|
out.println(res);
|
|
}
|
|
}
|