B055:タクシー料金
問題
PAIZAタウンでは、公共交通の手段としてタクシーが発達しています。
様々な料金のタクシーがあるため、初乗りが安くても最終的な運賃が高いタクシーを拾ってしまうかもしれません。タクシーの運賃は初乗り距離と初乗り運賃、加算距離、加算運賃で決まります。
タクシーの乗車距離が初乗り距離未満の場合は、初乗り運賃だけで移動することができます。
初乗り距離と同じ距離だけ乗車した段階で、運賃に加算運賃が追加され、以後加算距離を移動する毎に加算運賃が追加されていきます。あなたは今いる場所から X メートル離れた場所へ、 1 台のタクシーで移動しようとしています。
利用可能なタクシー N 台の料金のパラメータが与えられるので、タクシーで X メートル移動した際の最安値と最高値を計算してください。例えば、 入力例 1 の場合は以下のように 600円 が最安値となり、 800円 が最高値となります。
1 番目のタクシーは初乗り距離以上なので加算距離 1 つ分が追加され 600円 かかります。
2 番目のタクシーは初乗り距離までで到着するので、初乗り運賃のみで 800円 かかります。
解決
import java.util.*;
public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String[] values = line.split("\\s");
int numOfTaxi = Integer.parseInt(values[0]);
int distance = Integer.parseInt(values[1]);
int minCharge = 0;
int maxCharge = 0;
for (int i = 0; i < numOfTaxi; i++) {
String[] taxiInfo = sc.nextLine().split("\\s");
// <<-- default -->>
int defaultDistance = Integer.parseInt(taxiInfo[0]);
int defaultCharge = Integer.parseInt(taxiInfo[1]);
// <<-- addition -->>
int additionDistance = Integer.parseInt(taxiInfo[2]);
int additionCharge = Integer.parseInt(taxiInfo[3]);
// <<-- result -->>
int additionResult = 0;
int chargeResult = 0;
// check distance
if (distance >= defaultDistance) {
int remainDistance = distance - defaultDistance;
int additionCount = (remainDistance + additionDistance) / additionDistance;
additionResult = additionCount * additionCharge;
}
chargeResult = defaultCharge + additionResult;
// <<-- minCharge -->>
if (minCharge == 0) {
minCharge = chargeResult;
} else if (minCharge > chargeResult) {
minCharge = chargeResult;
}
// <<-- maxCharge -->>
if (maxCharge == 0) {
maxCharge = chargeResult;
} else if (maxCharge < chargeResult) {
maxCharge = chargeResult;
}
}
System.out.println(minCharge + " " + maxCharge);
}
}
Author And Source
이 문제에 관하여(B055:タクシー料金), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dev_jaesoon/B055タクシー料金저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)