YTUOJ 3553 三元湖船模竞速

题目描述

几天前,三元湖船模竞速拉开了帷幕,参加竞速的总共有 n 艘船,我们将三元湖水面当做平面直角坐标系,对于每一艘船都有一个起点 (a,b)和终点 (c,d) 以及行驶所用的时间 t,并且有一个值 status表示是否翻船,现在给你这些船的这些数据,请你输出冠军的平均速度。

输入

第 1行,一个数 n,表示参与竞速的船模的数量

第 2−(n+1)行,每行 6 个数 a,b,c,d,t,status,依次表示起点的横纵坐标,终点的横纵坐标,行驶所用时间,是否翻船(0为未翻船,1 为翻船)。

输出

一个数,即冠军的平均速度,保留两位小数。

输入输出样例

样例输入 #1

5
1.1 1 2 3 4 0
1 1.2 5 5 3 1
1 1 5.3 5 3 0
2 2 1 0.4 5 0
9 9 0 0 3.5 0

样例输出 #1

3.64

提示

冠军是未翻船的船中平均行驶速度最快的。

不要考虑为什么有的船翻了但是还能到达终点。

建议使用平面两点间的距离公式来计算两点的距离。

参考解答

//2022.11.30
#include <stdio.h>
#include<math.h>
struct a
{
	float a;
	float b;
	float c;
	float d;
	float t;
	int status;
	float len;
	float v;
};
int main()
{
	int n;
	scanf("%d",&n);
	struct a race[50];
	for(int i=0;i<n;i++)
	{
		scanf("%f%f%f%f",&race[i].a,&race[i].b,&race[i].c,&race[i].d);
		scanf("%f%d",&race[i].t,&race[i].status);
	}
	
	for(int i=0;i<n;i++)
	{
		race[i].len=sqrt(pow((race[i].c-race[i].a),2)+pow((race[i].d-race[i].b),2));
		race[i].v=race[i].len/race[i].t;
	}
	float fast=race[0].v;
	for(int i=0;i<n;i++)
	{
		if(race[i].status==0)
		{
			if(race[i].v>fast)
				fast=race[i].v;
		}
	}
	printf("%.2f",fast);
    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值