[백준 23854] The Battle of Giants (C#, C++) - soo:bak
작성일 :
문제 링크
설명
승리 3점, 무승부 1점, 패배 0점일 때 최종 점수 a:b가 가능하면 최소 경기 수로 승/무/패 개수를 구하고, 불가능하면 -1을 출력하는 문제입니다.
접근법
승리는 3점, 무승부는 1점, 패배는 0점입니다. 두 점수를 3으로 나눈 나머지가 다르면 만들 수 없으므로 -1을 출력합니다.
나머지가 같다면 무승부 횟수는 나머지와 같고, 승리 횟수는 a를 3으로 나눈 몫, 패배 횟수는 b를 3으로 나눈 몫이 됩니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using System;
class Program {
static void Main() {
var a = int.Parse(Console.ReadLine()!);
var b = int.Parse(Console.ReadLine()!);
if (a % 3 != b % 3)
Console.WriteLine("-1");
else
Console.WriteLine($"{a / 3} {a % 3} {b / 3}");
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int a, b; cin >> a >> b;
if (a % 3 != b % 3)
cout << -1 << "\n";
else
cout << a / 3 << " " << a % 3 << " " << b / 3 << "\n";
return 0;
}