当前位置:首页>java>【每日编程-41期】BS上机题(三)

【每日编程-41期】BS上机题(三)

  • 2026-08-27 05:27:21
【每日编程-41期】BS上机题(三)
北师大上机题(三)

每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399

    输入一堆要完成的任务,每个任务有开始时间和要完成的时间,求把这些任务做完最快要多久。(原题是回忆版题目,题意表述不是很明确,这里简单认为个任务可以在相同时间段内进行不会冲突,时间的格式采用的是整数)

输入格式:

输入任务的总数各个任务开始的时间和所需要的时间

输出格式:

所需时间

输入样例:

52 105 34 96 37 7

输出样例:

12
解决方法:

(1)算法的基本思想:

        首先,找出各个任务中最早的开始时间,再找出最晚的结束时间(计算各个任务开始时间+完成时间),计算最晚结束时间和最早开始时间的差值。

(2)代码实现:

#includeusingnamespacestd;typedefstructTask{int beg_time;int spend_time;}Task; intmain(void){int start = 100000000;int end = -1;int n;cout << "请输入任务总数:" << endl;cin >> n;    Task task[n];cout << "请输入各个任务的开始时间和所需时间:" << endl; for(int i = 0; i < n; i++){cin >> task[i].beg_time;cin >> task[i].spend_time;if(task[i].beg_time < start){            start = task[i].beg_time;        }if(task[i].spend_time + task[i].beg_time > end){            end = task[i].beg_time + task[i].spend_time;        }    }cout << "所需时间为:" << end - start << endl;return0;}
明日预告:厦门大学上机题(一)
        微信发红包的问题,输入两个数m和n,分别表示要发的钱数以及红包总包数,然后输出每个人发到了多少钱。

输入格式:

红包的金额总数

人数

输出格式:

每个人抢到的金额

输入样例:

5.24

输出样例:

0.85 1.74 0.24 2.37

最新文章

随机文章