# 分配口罩 某市市长获得了若干批口罩,给定每批口罩的数量,市长要把口罩分配给市内的2所医院。 ``` masks = [9090400, 8499400, 5926800, 8547000, 4958200, 4422600, 5751200, 4175600, 6309600, 5865200, 6604400, 4635000, 10663400, 8087200, 4554000] ``` 由于物流限制,每一批口罩只能全部分配给其中一家医院。 市长希望2所医院获得的口罩总数之差越小越好。 请你计算这个差最小是多少? 下面的代码实现了这一功能,请你填补空白处的内容。 ```c #include using namespace std; int ans = 0x3f3f3f3f; int num[15] = { 9090400, 8499400, 5926800, 8547000, 4958200, 4422600, 5751200, 4175600, 6309600, 5865200, 6604400, 4635000, 10663400, 8087200, 4554000}; void dfs(int u, int s1, int s2) { if (u == 15) { ans = min(ans, abs(s1 - s2)); return; } dfs(u + 1, s1 + num[u], s2); __________________ } int main() { dfs(0, 0, 0); cout << ans << endl; return 0; } ``` ## 答案 ```c dfs(u + 1, s1, s2 + num[u]); ``` ## 选项 ### A ```c dfs(u, s1, s2 + num[u]); ``` ### B ```c dfs(u + 1, s1 + num[u], s2 + num[u]); ``` ### C ```c dfs(u + 1, s1 + num[u], s2); ```