华为笔试最后一题:优先级调度

#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
struct task
{
	int ID;
	int priority;
	int start;
	int time;
};

bool compare(const task& task1, const task& task2)
{
	return task1.priority>task2.priority;
}
int main()
{
	vector<task> vec(5);
	int coord[300] = { 0 };
	int a, b, c, d;
	for (int i = 0; i < 4; ++i)
	{
		scanf_s("[%d.%d.%d.%d]|", &a, &b, &c, &d);
		vec[i].ID = a;
		vec[i].priority = b;
		vec[i].start = c;
		vec[i].time = d;
	}
	scanf_s("[%d.%d.%d.%d]", &a, &b, &c, &d);
	vec[4].ID = a;
	vec[4].priority = b;
	vec[4].start = c;
	vec[4].time = d;
	sort(vec.begin(), vec.end(), compare);
	for (int i = 0; i < 5; ++i)
	{
		int begintime = vec[i].start;
		int spend = 0;
		for (int j = begintime;; ++j)
		{
			if (coord[j] == 0){
				coord[j] = vec[i].ID;
				spend++;
				if (spend == vec[i].time) break;
			}
		}
	}
	int pre = -1;
	for (int i = 0;; ++i)
	{
		if (i == 199)
		{
			printf("%d.%d", coord[i], i - pre);
			break;
		}
		if (coord[i] == coord[i + 1])
		{
		}
		else
		{
			printf("%d.%d|", coord[i], i - pre);
			pre = i;
		}
	}
	return 0;
}

全部评论

相关推荐

湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务