Taxi Fare

A - Taxi Fare
Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu

Description

Last September, Hangzhou raised the taxi fares.

The original flag-down fare in Hangzhou was 10 yuan, plusing 2 yuan per kilometer after the first 3km and 3 yuan per kilometer after 10km. The waiting fee was 2 yuan per five minutes. Passengers need to pay extra 1 yuan as the fuel surcharge.

According to new prices, the flag-down fare is 11 yuan, while passengers pay 2.5 yuan per kilometer after the first 3 kilometers, and 3.75 yuan per kilometer after 10km. The waiting fee is 2.5 yuan per four minutes.

The actual fare is rounded to the nearest yuan, and halfway cases are rounded up. How much more money does it cost to take a taxi if the distance is d kilometers and the waiting time is t minutes.

Input

There are multiple test cases. The first line of input is an integer T ≈ 10000 indicating the number of test cases.

Each test case contains two integers 1 ≤ d ≤ 1000 and 0 ≤ t ≤ 300.

Output

For each test case, output the answer as an integer.

Sample Input

4
2 0
5 2
7 3
11 4

Sample Output

0
1
3
5
#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int d,t;
    while(n--)
    {
        cin>>d>>t;
        double sum1=0;
        double sum2=0;
        if(d<=3)
        {
            sum1=11;
            sum2=11;
        }
        else if(d>3&&d<=10)
        {
            sum1=11+2*(d-3);
            sum2=11+2.5*(d-3);
        }
        else
        {
            sum1=25+(d-10)*3;
            sum2=28.5+(d-10)*3.75;
        }
        sum1+=(t*1.0)/5*2;
        sum2+=(t*1.0)/4*2.5;
        int sum11,sum22;
        if((sum1-(int)(sum1))>=0.5)
         sum11=(int)(sum1)+1;
        else
        sum11=(int)(sum1);
        if((sum2-(int)(sum2))>=0.5)
         sum22=(int)(sum2)+1;
        else
        sum22=(int)(sum2);
        cout<<sum22-sum11<<endl;

        /*double sum=sum2-sum1;
        int sum3=(int)(sum);
        double a=sum-sum3;
        if(a>=0.5)
            cout<<sum3+1<<endl;
        else
            cout<<sum3<<endl;*/
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于Java面向对象编程的问题,我可以为你解答。 首先,我们定义一个 Car 类,包含 speed 和 distance 两个属性,以及一个计算行车时间的方法 getDrivingTime(),代码如下: ```java public class Car { private int speed; // 车速,单位 km/h private int distance; // 行车路程,单位 km public Car(int speed, int distance) { this.speed = speed; this.distance = distance; } public int getSpeed() { return speed; } public void setSpeed(int speed) { this.speed = speed; } public int getDistance() { return distance; } public void setDistance(int distance) { this.distance = distance; } public double getDrivingTime() { return (double)distance / speed; // 行车时间 = 行车路程 / 车速 } } ``` 接下来,我们定义一个 Taxi 类,继承 Car 类,并添加一个 pricePerKm 属性和一个计算车费的方法 getFare(),代码如下: ```java public class Taxi extends Car { private double pricePerKm; // 每公里价格,单位元/公里 public Taxi(int speed, int distance, double pricePerKm) { super(speed, distance); this.pricePerKm = pricePerKm; } public double getPricePerKm() { return pricePerKm; } public void setPricePerKm(double pricePerKm) { this.pricePerKm = pricePerKm; } public double getFare() { return pricePerKm * getDistance(); // 车费 = 每公里价格 * 行车路程 } } ``` 最后,我们在 main 方法中创建一个 Taxi 对象,设置属性并调用方法进行测试,代码如下: ```java public static void main(String[] args) { Taxi taxi = new Taxi(60, 100, 2.5); // 速度为 60 km/h,行车路程为 100 km,每公里价格为 2.5 元 double drivingTime = taxi.getDrivingTime(); // 计算行车时间 double fare = taxi.getFare(); // 计算车费 System.out.println("行车时间:" + drivingTime + " 小时"); System.out.println("车费:" + fare + " 元"); } ``` 输出结果为: ``` 行车时间:1.6666666666666667 小时 车费:250.0 元 ``` 注意,以上代码只是一个简单的示例,实际开发中还需要考虑很多细节问题,比如属性的合法性校验、异常处理等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值