Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
134807 mairuisheng 加工生产调度 C++ 解答错误 33 0 MS 280 KB 1025 2024-03-02 19:36:08

Tests(4/12):


#include<bits/stdc++.h> using namespace std; int n, ta, tb, l, r, a0[1005], b0[1005], ord[1005]; struct node { int a, b, id; }p[1005]; int read() { int x = 0, fl = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') fl = -1; ch = getchar();} while (ch >= '0' && ch <= '9') {x = (x << 1) + (x << 3) + ch - '0'; ch = getchar();} return x * fl; } int cmp(node x, node y) { return min(x.a, x.b) < min(y.a, y.b); } int main() { n = read(); for (int i = 1; i <= n; i ++ ) p[i].a = read(), a0[i] = p[i].a; for (int i = 1; i <= n; i ++ ) p[i].b = read(), b0[i] = p[i].b; for (int i = 1; i <= n; i ++ ) p[i].id = i; sort(p + 1, p + n + 1, cmp); l = 0; r = n + 1; for (int i = 1; i <= n; i ++ ) (p[i].a < p[i].b) ? ord[ ++ l] = p[i].id : ord[ -- r] = p[i].id; for (int i = 1; i <= n; i ++ ) { ta += a0[ord[i]]; tb = max(ta, tb) + b0[ord[i]]; } printf("%d\n", tb); for (int i = 1; i <= n; i ++ ) printf("%d ", ord[i]); puts(""); return 0; }


测评信息: