这题能紫?
#include <bits/stdc++.h>
using namespace std;
const int INF = 1000000000;
const int N = 1000 + 10;
int fu = 1;
int bang;
int jie[N] = {0};
struct car {
int a, b, id;
} j[N], j2[N];
int main() {
int n;
scanf("%d", &n);
bang = n;
for (int i = 1; i <= n; i++) {
scanf("%d", &(j[i].a));
j2[i].a = j[i].a;
}
for (int i = 1; i <= n; i++) {
scanf("%d", &(j[i].b));
j2[i].b = j[i].b;
j[i].id = i;
j2[i].id = i;
}
int len = n;
while (len) {
car* a = &(j[1]);
bool b = 0; //0a1b
for (int i = 2; i <= n; i++) {
if (j[i].a < (b ? (a->b) : (a->a))) {
b = 0;
a = &(j[i]);
}
if (j[i].b < (b ? (a->b) : (a->a))) {
b = 1;
a = &(j[i]);
}
}
if (b)jie[bang--] = a->id;
else jie[fu++] = a->id;
len--;
a->a = INF;
a->b = INF;
}
int timea = 0, timeb = 0;
for (int i = 1; i <= n; i++) {
timea += (j2[jie[i]].a);
if (timeb < timea)timeb = timea;
timeb += (j2[jie[i]].b);
}
printf("%d\n", timeb);
for (int i = 1; i <= n; i++) {
printf("%d ", jie[i]);
}
return 0;
}
希望各位大佬帮忙看看