작성일 :

문제 링크

27262번 - Лифт

설명

간단한 사칙연산 문제입니다.

문제의 목표는 거주하는 층 n , 현재 위치한 엘레베이터의 층 k, 계단을 이동하는 데 걸리는 시간 k,
엘리베이터가 각 층을 이동하는 데에 걸리는 시간 b 가 주어졌을 때, 엘레베이터를 이용하는 경우의 시간
계단을 이용하는 경우의 시간을 각각 계산하는 것입니다.

주어진 조건에 따르면, 각각의 시간은 다음과 같이 계산됩니다.

엘레베이터를 이용하는 경우의 시간
= 엘레베이터가 1층에 도달하는 시간 + 엘레베이터가 n층으로 이동하는 시간
= (abs(1 - k) * b) + (n - 1) * b

계단을 이용하는 경우의 시간
= (n - 1) * b

결과값을 계산한 후, 문제에서 주어진 출력 조건에 따라 적절히 출력합니다.


Code

[ C# ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace Solution {
  class Program {
    static void Main(string[] args) {

      var input = Console.ReadLine()?.Split();
      var n = int.Parse(input![0]);
      var k = int.Parse(input![1]);
      var a = int.Parse(input![2]);
      var b = int.Parse(input![3]);

      var elevTime = Math.Abs(1 - k) * b + (n - 1) * b;
      var stairTime = (n - 1) * a;

      Console.WriteLine($"{elevTime} {stairTime}");

    }
  }
}



[ C++ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int n, k, a, b; cin >> n >> k >> a >> b;

  int elevTime = abs(1 - k) * b + (n - 1) * b;
  int stairTime = (n - 1) * a;

  cout << elevTime << " " << stairTime << "\n";

  return 0;
}