题解分享
题解分享简介
食堂(编程题) - 题解
```
import java.io.PrintWriter;
import java.util.*;
public class Main {
static int N = 1000010;
public static void main(String[] args) {
Scanner f = new Scanner(System.in);
PrintWriter w = new PrintWriter(System.out);
int T = f.nextInt();
while (T-- > 0) {
int a2 = f.nextInt();
int a3 = f.nextInt();
int a4 = f.nextInt();
int b4 = f.nextInt();
int b6 = f.nextInt();
int cnt = 0, ans = 0;
cnt = Math.min(a4, b4);
ans += cnt * 4;
a4 -= cnt;
b4 -= cnt;
cnt = Math.min(a2 / 2, b4);
ans += cnt * 4;
a2 -= cnt * 2;
b4 -= cnt;
cnt = Math.min(a3, b4);
ans += cnt * 3;
a3 -= cnt;
b4 -= cnt;
cnt = Math.min(Math.min(a2, a4), b6);
ans += cnt * 6;
a4 -= cnt;
a2 -= cnt;
b6 -= cnt;
cnt = Math.min(a2 / 3, b6);
ans += cnt * 6;
a2 -= cnt * 3;
b6 -= cnt;
cnt = Math.min(a3 / 2, b6);
ans += cnt * 6;
a3 -= cnt * 2;
b6 -= cnt;
if (a2 > 0 && a3 > 0) {
cnt = Math.min(Math.min(a2, a3), b6);
ans += cnt * 5;
a3 -= cnt;
a2 -= cnt;
b6 -= cnt;
}
if (a4 > 0) {
cnt = Math.min(a4, b6);
ans += cnt * 4;
a4 -= cnt;
b6 -= cnt;
}
if (a3 > 0) {
cnt = Math.min(a3, b6);
ans += cnt * 3;
a3 -= cnt;
b6 -= cnt;
}
if (a2 > 0) {
if (b6 > 0) {
ans += a2 * 2;
}
}
w.println(ans);
}
w.flush();
}
}
```
查看全文
1
0
0
6
食堂(编程题) - 题解
视频中的标准程序代码如下:
```java
import java.util.Scanner;
public class Main {
static int a2, a3, a4, b4, b6, ans;
static int check(int a2, int a3, int a4, int aa2, int aa3, int aa4) {
int res = 0;
for (int i = 1; i <= b4; i++) {
if (a4 > 0) {
a4--;
res += 4;
} else if (a2 >= 2) {
a2 -= 2;
res += 4;
} else if (a3 > 0) {
a3--;
res += 3;
} else if (a2 > 0) {
a2--;
res += 2;
}
}
for (int i = 1; i <= b6; i++) {
if (aa4 > 0 && aa2 > 0) {
aa4--;
aa2--;
res += 6;
} else if (aa3 >= 2) {
aa3 -= 2;
res += 6;
} else if (aa2 >= 3) {
aa2 -= 3;
res += 6;
} else if (aa3 > 0 && aa2 > 0) {
aa3--;
aa2--;
res += 5;
} else if (aa4 > 0) {
aa4--;
res += 4;
} else if (aa2 >= 2) {
aa2 -= 2;
res += 4;
} else if (aa3 > 0) {
aa3--;
res += 3;
} else if (aa2 > 0) {
aa2--;
res += 2;
}
}
return res;
}
static void solve(Scanner scanner) {
ans = 0;
a2 = scanner.nextInt();
a3 = scanner.nextInt();
a4 = scanner.nextInt();
b4 = scanner.nextInt();
b6 = scanner.nextInt();
for (int i = 0; i <= a2; i++) {
for (int j = 0; j <= a3; j++) {
for (int k = 0; k <= a4; k++) {
int ii = a2 - i, jj = a3 - j, kk = a4 - k;
ans = Math.max(ans, check(i, j, k, ii, jj, kk));
}
}
}
System.out.println(ans);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int T = scanner.nextInt();
while (T-- > 0) {
solve(scanner);
}
scanner.close();
}
}
```
查看全文
0
0
0
10



