From e9fd5e58555a159ffc26ff0a39d0e0c1bf62eed7 Mon Sep 17 00:00:00 2001 From: unlockable Date: Mon, 25 Aug 2025 23:35:25 +0800 Subject: [PATCH] 2023-4a --- thu20234a.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 thu20234a.cpp diff --git a/thu20234a.cpp b/thu20234a.cpp new file mode 100644 index 0000000..041f711 --- /dev/null +++ b/thu20234a.cpp @@ -0,0 +1,47 @@ +#include + +int time[10][2]; +int vis[10]; +int T; +int n; + +int dfs(int layer, int a_done, int b_done) { + if (layer > n) { + return b_done; + } + int min = 10000000; + int me_a_done, me_b_done; + for (int i = 0; i < n; i++) { + if (vis[i]) { + continue; + } + + vis[i] = true; + me_a_done = a_done + time[i][0]; + if (me_a_done > b_done) { + me_b_done = me_a_done + time[i][1]; + } else { + me_b_done = b_done + time[i][1]; + } + int further_min = dfs(layer + 1, me_a_done, me_b_done); + min = min < further_min ? min : further_min; + vis[i] = false; + } + return min; +} + +int main() { + scanf("%d", &T); + for (int _ = 0; _ < T; _++) { + scanf("%d", &n); + int a, b; + for (int i = 0; i < n; i++) { + scanf("%d %d", &a, &b); + time[i][0] = a; + time[i][1] = b; + vis[i] = false; + } + printf("%d\n", dfs(1, 0, 0)); + } + return 0; +} \ No newline at end of file