输出了负数 :(
个人认为在 Case1,但是没时间调了,先挂在这里 求大佬解答(现在菜到不会做结论题了
// Copyright 2023 Lotuses
#include <cmath>
#include <cstdio>
#include <cstring>
#include <vector>
#define int long long
#define eps 1e-12
#define flr(x) (int)(floor(x + eps))
signed main() {
int T;
read(T);
while (T--) {
int a, b, n, m;
read(a, b, n, m);
int c1 = (n - flr(1.0 * n / (m + 1))) * a;
int c2 = n / (m + 1) * m * a + (n - flr(1.0 * n / (m + 1)) * (m + 1)) * b;
int c3 = b * n;
int ans = std::min(c1, std::min(c2, c3));
printf("%lld\n", ans, c1, c2, c3);
}
return 0;
}
/*
1: all choose a
c = (n - floor(n / (m + 1))) * a
2: choose a for free & some b
c = a * n * m / (m + 1) + (n - floor(n / (m + 1)) * (m + 1)) * b
3: all choose b
c = b * n
*/