50156. Highest Discount Rate
難度:3/5
記得單獨處理0。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46#include <stdio.h>
int geq(int a, int b, int c, int d){
return a * d >= b * c;
}
int gt(int a, int b, int c, int d){
return a * d > b * c;
}
int main() {
int a, b, v, w, x, y, z;
scanf("%d %d %d %d %d %d %d", &a, &b, &v, &w, &x, &y, &z);
int max_num, max_den;
if(a % 2 == 1){
if(geq(v, a, w, a + 1)) max_num = v, max_den = a;
else max_num = w, max_den = a + 1;
// v / a , w / (a + 1)
}
else{
if(geq(w, a, v, a + 1)) max_num = w, max_den = a;
else max_num = v, max_den = a + 1;
// w / a , v / (a + 1)
}
if(b % 3 == 0){
if(gt(x, b, max_num, max_den)) max_num = x, max_den = b;
if(gt(y, b + 1, max_num, max_den)) max_num = y, max_den = b + 1;
if(gt(z, b + 2, max_num, max_den)) max_num = z, max_den = b + 2;
// x / b, y / b + 1, z / b + 2
}
else if(b % 3 == 1){
if(gt(y, b, max_num, max_den)) max_num = y, max_den = b;
if(gt(z, b + 1, max_num, max_den)) max_num = z, max_den = b + 1;
if(gt(x, b + 2, max_num, max_den)) max_num = x, max_den = b + 2;
// y / b, z / b + 1, x / b + 2
}
else{
if(gt(z, b, max_num, max_den)) max_num = z, max_den = b;
if(gt(x, b + 1, max_num, max_den)) max_num = x, max_den = b + 1;
if(gt(y, b + 2, max_num, max_den)) max_num = y, max_den = b + 2;
// z / b, x / b + 1, y / b + 2
}
if(v == 0 && w == 0 && x == 0 && y == 0 && z == 0) printf("%d\n", 1);
else printf("%d\n", max_den);
}