작성일 :

문제 링크

29720번 - 그래서 님 푼 문제 수가?

설명

n문제 이상을 달성하려면 하루 m문제씩 최소 k일 더 풀어야 할 때, 현재 푼 문제 수의 범위를 구하는 문제입니다.


접근법

현재 푼 문제 수의 최솟값은 n - m × k이고, 최댓값은 n - m × k + m - 1입니다.

최솟값이 음수가 될 수 있으므로 0으로 보정합니다.


Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
using System;

class Program {
  static void Main() {
    var p = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);
    var n = p[0];
    var m = p[1];
    var k = p[2];
    var minSolved = Math.Max(0, n - m * k);
    var maxSolved = n - m * k + m - 1;
    Console.WriteLine($"{minSolved} {maxSolved}");
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <bits/stdc++.h>
using namespace std;

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

  int n, m, k; cin >> n >> m >> k;
  int minSolved = max(0, n - m * k);
  int maxSolved = n - m * k + m - 1;
  cout << minSolved << " " << maxSolved << "\n";

  return 0;
}