/* 18:40-19:00 */ #include #include int compound(int initial, int years, double rate, int charge) { int y; for (y = 0; y < years; y++) { initial += (int)floor(rate * initial) - charge; } return initial; } int single(int initial, int years, double rate, int charge) { int y, interest = 0; for (y = 0; y < years; y++) { interest += (int)floor(rate * initial); initial -= charge; } return initial + interest; } int main() { int I, i, m, initial, years, n, max = 0, y; scanf("%d", &m); for (I = 0; I < m; I++) { scanf("%d", &initial); scanf("%d", &years); scanf("%d", &n); max = 0; for (i = 0; i < n; i++) { int is_compound; double rate; int charge, result; scanf("%d%lf%d", &is_compound, &rate, &charge); if (is_compound) { result = compound(initial, years, rate, charge); } else { result = single(initial, years, rate, charge); } if (max < result) { max = result; } } printf("%d\n", max); } return 0; }