Subtask过了,但其他全WA,求``` #include #include #include
using namespace std;
struct Operation { int job; int machine; int time; };
bool compareTime(const Operation& op1, const Operation& op2) { return op1.time < op2.time; }
int main() { int m, n; cin >> m >> n;
vector<int> order(m * n);
for (int i = 0; i < m * n; i++) {
cin >> order[i];
}
vector<vector<int>> machines(n, vector<int>(m));
vector<vector<int>> times(n, vector<int>(m));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> machines[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> times[i][j];
}
}
vector<Operation> operations;
for (int i = 0; i < m * n; i++) {
int job = order[i];
int machine = machines[job - 1][0];
int time = times[job - 1][0];
operations.push_back({job, machine, time});
machines[job - 1].erase(machines[job - 1].begin());
times[job - 1].erase(times[job - 1].begin());
}
sort(operations.begin(), operations.end(), compareTime);
vector<int> completionTimes(m, 0);
int totalTime = 0;
for (const Operation& op : operations) {
int job = op.job;
int machine = op.machine;
int time = op.time;
completionTimes[machine - 1] += time;
totalTime = max(totalTime, completionTimes[machine - 1]);
}
cout << totalTime << endl;
return 0;
}