10分求助
查看原帖
10分求助
1481182
封禁用户楼主2024/12/29 20:15

最后一个AC,其余WA

#include <iostream>
using namespace std;

typedef struct data {
	int id, time;
} process;

int main() {
	int line[21][10000] = {0}, m, n;
	cin >> m >> n;
	int order[m * n];
	process processes[21][21];
	int step[21] = {0}, res = 0, last_time[21] = {0};
	for (int i = 0; i < m * n; ++i) {
		cin >> order[i];
	}
	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < m; ++j) {
			cin >> processes[i][j].time;
		}
	}
	for (int i = 0; i < m * n; ++i) {
		int now = order[i] - 1;
		int num = step[now]++;
		int id = processes[now][num].id;
		int cost = processes[now][num].time;
		int point = 0;
		int index;
		index = last_time[now] + 1;
		while (1) {
			if (line[id][index] == 0) {
				point++;
			} else {
				point = 0;
			}
			if (point == cost) {
				for (int j = index - point + 1; j <= index; ++j) {
					line[id][j] = 1;
				}
				if (index > res) {
					res = index;
				}
				last_time[now] = index;
				break;
			}
			index++;
		}
	}
	cout << res;
}
2024/12/29 20:15
加载中...