"视频时长计算:三段视频拼接成一段的总时长"\n\n比赛题目\n时间限制:C/C++ 1000MS,其他语言 2000MS\n内存限制:C/C++ 128MB,其他语言 256MB\n\n描述\n\n计算鸭有三段视频,三段视频的时长各不相同,他准备把三段视频通过以下方式剪辑成一段视频:三段中最长的调成 3 倍速(时长变为原来的1/3),最短的调成 2 倍速(时长变为原来的1/2),时长中等的播放速度不变。请问按顺序拼成一段视频后视频的总时长是多少。\n\n输入描述\n\n输入一行包含三个正整数 a,b,c(1<=a,b,c<=100000),分别表示三段视频的时长(以分钟为单位)。\n\n输出描述\n\n输出两个正整数,分别表示拼成一段视频后时长的小时数和分钟数(向上取整)。\n\n用例输入 1 \n\n50 100 150\n用例输出 1 \n\n2 55\n\n内容:\n\n解题思路:\n1. 根据题目描述,需要将三段视频拼接成一段视频,其中最长的视频时长调整为原来的1/3,最短的视频时长调整为原来的1/2,中间的视频时长不变。\n2. 首先,找出三段视频中的最长时长max_time和最短时长min_time。\n3. 将最长时长max_time除以3,并向上取整,得到max_time_adjusted。\n4. 将最短时长min_time除以2,并向上取整,得到min_time_adjusted。\n5. 计算总时长total_time = max_time_adjusted + min_time_adjusted + 中间视频时长。\n6. 将total_time转换为小时数和分钟数,向上取整。\n7. 输出结果。\n\nC++代码实现如下:\n\n#include \n#include \nusing namespace std;\n\nint main() {\n int a, b, c; \n cin >> a >> b >> c; \n\n int max_time = max(max(a, b), c); \n int min_time = min(min(a, b), c); \n\n int max_time_adjusted = ceil(max_time / 3.0); \n int min_time_adjusted = ceil(min_time / 2.0); \n\n int total_time = max_time_adjusted + min_time_adjusted + (a + b + c - max_time - min_time); \n\n int hours = ceil(total_time / 60.0); \n int minutes = total_time % 60; \n\n cout << hours << " " << minutes << endl; \n\n return 0; \n}\n


原文地址: https://www.cveoy.top/t/topic/p9Xv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录