작성일 :

문제 링크

31429번 - SUAPC 2023 Summer

설명

N(1~11)이 주어지면 SUAPC 2023 Summer 스코어보드에서 N등 팀의 푼 문제 수와 페널티 합을 그대로 출력하는 문제입니다. 스코어보드 값은 고정되어 있습니다.


접근법

스코어보드의 등수별 결과가 고정되어 있으므로 테이블에 미리 저장해둡니다. 입력받은 등수에서 1을 빼서 인덱스로 사용하면 해당 팀의 푼 문제 수와 페널티를 바로 조회할 수 있습니다.


Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;

class Program {
  static void Main() {
    var table = new (int solved, int penalty)[] {
      (12, 1600),
      (11,  894),
      (11, 1327),
      (10, 1311),
      ( 9, 1004),
      ( 9, 1178),
      ( 9, 1357),
      ( 8,  837),
      ( 7, 1055),
      ( 6,  556),
      ( 6,  773)
    };

    var n = int.Parse(Console.ReadLine()!);
    var (solved, penalty) = table[n - 1];
    Console.WriteLine($"{solved} {penalty}");
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> pii;

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

  vector<pii> table = {
    {12, 1600},
    {11,  894},
    {11, 1327},
    {10, 1311},
    { 9, 1004},
    { 9, 1178},
    { 9, 1357},
    { 8,  837},
    { 7, 1055},
    { 6,  556},
    { 6,  773}
  };

  int n; cin >> n;
  auto [solved, penalty] = table[n - 1];
  cout << solved << " " << penalty << "\n";

  return 0;
}