栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

速度与时间---现按行驶顺序给出M个时间段的速度,问这辆车能否在T分钟内行驶S米的路程。

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

速度与时间---现按行驶顺序给出M个时间段的速度,问这辆车能否在T分钟内行驶S米的路程。

【题目描述】
电影《速度与激情》男主角保罗.沃克因车祸身亡。谨以此题告诫那些喜欢飙车的人!
一辆车在公路上行驶,在一定时间内处于匀速状态,也即速度是固定不变的,但之后将发生改变。现按行驶顺序给出M个时间段的速度,问这辆车能否在T分钟内行驶S米的路程。

【输入格式】
第1行:三个空格隔开的整数:T S M(1<=T<=10000,1000<=S<=20000000,1<=M<=1000)
之后的M行,每行两个整数tm(1<=tm<=10 )和V(500<=V<=2000),表示在tm分钟内,车子的速度是每分钟V米。
数据保证M个时间段的总时间>=T。

【输出格式】
两行。
第1行:能在规定的T分钟里行驶S米的路程,则输出“Yes”,否则输出“NO”;
第2行:输出T分钟行驶的路程与S的差的绝对值。

【输入样例1】
5 18000 2
3 2000
2 1000

【输出样例1】
NO
10000

【样例1说明】
要在5分钟内行驶18000米,有2个时间段:前3分钟,每分钟行驶2000米;后2分钟,每分钟行驶1000千米。所以5分钟行驶了3×2000+2×1000=8000米,输出NO。8000-180000的绝对值是10000

【输入样例2】
8 10000 3
2 2000
3 1500
3 1000

【输出样例2】
Yes
1500

#include
using namespace std;
int main()
{
 
 	freopen ("speed.in","r",stdin);
	freopen ("speed.out","w",stdout);
	
 	int T,S,M;//T代表总时间,S代表路程,M为多少段
	cin>>T>>S>>M;
	
	int sum=0;
	int tSum=0; 
	int t[M][2];
	for(int i=0;i>t[i][0]>>t[i][1];//输入时间,和速度 
		
		tSum+= t[i][0];
		//sum=sum+t[i][0]*t[i][1];
		sum+=t[i][0]*t[i][1]; //求路程=时间*速度:匀速直线运动,每段 
	}
	
	if(	tSum>=T)
	{
				if(sum>=S)
		{
			cout<<"Yes"<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号