Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
134053 | 廖悦扬 | 加工生产调度 | C++ | 解答错误 | 33 | 0 MS | 308 KB | 731 | 2024-03-02 11:46:43 |
#include <bits/stdc++.h> #define int long long using namespace std; const int N = 10000 + 5; int n, m, a[N], b[N], wk[N], wa, wb; struct st{ int m, i; bool operator<(const st&a) { return m < a.m; } } stu[N]; signed main() { scanf("%d", &n); for (int i=1; i<=n; i++) scanf("%d", a+i), stu[i].i=i; for (int i=1; i<=n; i++) scanf("%d", b+i), stu[i].m=min(a[i], b[i]); sort(stu+1, stu+1+n); int l=1, r=n; for (int i=1; i<=n; i++) { if (stu[i].m == a[stu[i].i]) wk[l++] = stu[i].i; else wk[r--] = stu[i].i; } for (int i=1; i<=n; i++) { wa += a[wk[i]]; if (wa > wb) wb = wa; wb += b[wk[i]]; } printf("%d\n", wb); for (int i=1; i<=n; i++) printf("%d ", wk[i]); return 0; }