์์ฑ์ : ๊น๋ฏผ๊ท
๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/20546
- "์ค๋๋ ํธ์ฌ๋ง ์๊ฒ ํด์ฃผ์ธ์. ๋ฒํ-"
2๋ ์ฐจ ๊ฐ๋ฏธ ์คํ์ด๋ ์ค๋๋ ๋ฒํ์ ์๊ฒ ๊ธฐ๋๋ฅผ ์ฌ๋ฆฐ๋ค. ์ฅ๊ธฐ ํฌ์๋ฅผ ์งํฅํ๋ ์คํ์ด๋ ํ ๋ฒ ์ฐ ์ฃผ์์ ์ ๋ ํ์ง ์๋๋ค. 2099๋ ์ด ๋์ด๋ ์ฃผ์์ ํ์ง ์์ ๊ฒ์ด๋ค. ์ฃผ์ ๋งค์ ํ ์ค๋ก์ง ๊ธฐ๋๋ง ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ BNP ์ ๋ต์ด๋ผ๊ณ ํ๋ค. BNP๋ Buy and Pray์ ์ฝ์์ด๋ค. ์คํ์ด๋ ์ฃผ์์ ์ด ์ ์๋ค๋ฉด ๋ฌด์กฐ๊ฑด ์ต๋ํ ๋ง์ด ์ฐ๋ค. ์คํ์ด๋ ์์ฌ์์ด์ด๊ธฐ ๋๋ฌธ์, ์ฃผ์์ ์ด ์ ์๋ค๋ฉด ๊ฐ๋ฅํ ๋งํผ ์ฆ์ ๋งค์ํ๋ค. ๋ค์์ ์คํ์ด๊ฐ ํ๊ธ 100์์ผ๋ก A๊ธฐ์ ์ ์ฃผ์์ ์ฌ๋ ๊ฒฝ์ฐ์ด๋ค.
"์ฃผ์์ ํ์ด๋ฐ์ด์ง!"
๋ฐ๋ฉด, ์ฑ๋ฏผ์ด๋ ์ค๋๋ ์ฃผ์ ๊ฑฐ๋ย ํ๋ก๊ทธ๋จ์ย ์คํํ๋ค. ๋ชจ๋ํฐ 8๊ฐ์์ ๋ฟ์ด์ ธ ๋์ค๋ ํ๋ คํ ์ฃผ์ ์ฐจํธ๊ฐ ์ฑ๋ฏผ์ด๋ฅผ ๊ฐ์ผ๋ค. ์ฑ๋ฏผ์ด๋ ์ฃผ์์ด ํ์ด๋ฐ ์ธ์์ด๋ผ ์๊ฐํ๋ค. ์ ํ์ ์ธ ๋จ๊ธฐ ํฌ์์๋ก ์๊ฐํ๋ฉด ์ค์ฐ์ด๋ค. ์ฑ๋ฏผ์ด๋ง์ ์ ๋ต์ด ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฅธ๋ฐ 33 ๋งค๋งค๋ฒ์ผ๋ก, ๊ทธ ๋ฐฉ๋ฒ์ ๋ค์์ ์ธย ๊ฐ์ง ๋ฃฐ๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
- ๋ชจ๋ ๊ฑฐ๋๋ ์ ๋ ๋งค์์ ์ ๋ ๋งค๋๋ก ์ด๋ฃจ์ด์ง๋ค. ํ์ฌ ๊ฐ์ง๊ณ ์๋ ํ๊ธ์ด 100์์ด๊ณ ย ์ฃผ๊ฐ๊ฐ 11์์ด๋ผ๋ฉด 99์์ด์น์ ์ฃผ์์ ๋งค์ํ๋ ๊ฒ์ด๋ค. ๋จ, ํ๊ธ์ด 100์ ์๊ณ ์ฃผ๊ฐ๊ฐ 101์์ด๋ผ๋ฉด ์ฃผ์์ ์ด ์ ์๋ค. ์ฑ๋ฏผ์ด๋ ๋น์ ๋ด์ ์ฃผ์์ ํ์ง๋ ์๋๋ค.
- 3์ผ ์ฐ์ย ๊ฐ๊ฒฉ์ด ์ ์ผ ๋๋น ์์นํ๋ ์ฃผ์์ ๋ค์๋ ๋ฌด์กฐ๊ฑด ๊ฐ๊ฒฉ์ด ํ๋ฝํ๋ค๊ณ ๊ฐ์ ํ๋ค. ๋ฐ๋ผ์ ํ์ฌ ์์ ํ ์ฃผ์์ ๊ฐ๊ฒฉ์ด 3์ผ์งธ ์์นํ๋ค๋ฉด, ์ ๋ ๋งค๋ํ๋ค. ์ ์ผ๊ณผ ์ค๋์ ์ฃผ๊ฐ๊ฐ ๋์ผํ๋ค๋ฉด ๊ฐ๊ฒฉ์ด ์์นํ ๊ฒ์ด ์๋๋ค.
- 3์ผ ์ฐ์ย ๊ฐ๊ฒฉ์ด ์ ์ผ ๋๋น ํ๋ฝํ๋ ์ฃผ์์ ๋ค์๋ ๋ฌด์กฐ๊ฑด ๊ฐ๊ฒฉ์ด ์์นํ๋ค๊ณ ๊ฐ์ ํ๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๊ฒฝํฅ์ด ๋ํ๋๋ฉด ์ฆ์ ์ฃผ์์ ์ ๋ ๋งค์ํ๋ค. ์ ์ผ๊ณผ ์ค๋์ ์ฃผ๊ฐ๊ฐ ๋์ผํ๋ค๋ฉด ๊ฐ๊ฒฉ์ด ํ๋ฝํ ๊ฒ์ด ์๋๋ค.
์คํ์ด์ ์ฑ๋ฏผ์ด๋ย ๊ฐ์์ ๋งค๋งค๋ฒ ์ค ์ด๋ค ๋ฐฉ๋ฒ์ด ๋ ์์ต๋ฅ ์ด ๋์์ง ๊ฒจ๋ค๋ณด๊ธฐ๋ก ํ๋ค. ์ค๋ก์ง MachineDuck์ด๋ผ๋ ๊ธฐ์ ์ ์ฃผ์๋ง ๊ฑฐ๋๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ๋ด๊ธฐย ๊ธฐ๊ฐ์ 2021๋ 1์ 1์ผ๋ถํฐ 2021๋ 1์ 14์ผ๊น์ง์ด๋ค.ย ์คํ์ด์ ์ฑ๋ฏผ์ด์๊ฒ ์ฃผ์ด์ง ํ๊ธ์ ๋์ผํ๋ค. ์ธ๊ธฐ์ ๋๊ฒฐ์ด๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐ๊ฐ์๋ ๋งค์ผ ์ฃผ์ ๊ฑฐ๋๊ฐ ๊ฐ๋ฅํ๋ค. 2021๋ 1์ 14์ผ์ ๋ ๋ง์ ์์ฐ์ ๋ณด์ ํ ์ฌ๋์ด ์น๋ฆฌํ๋ค. 1์ 14์ผ์ ์์ฐ์ (ํ๊ธ + 1์ 14์ผ์ ์ฃผ๊ฐ ร ์ฃผ์ ์)๋ก ๊ณ์ฐํ๋ค.
์ฐ๋ฆฌ๋ 2021๋ 1์ 1์ผ๋ถํฐ 2021๋ 1์ 14์ผ๊น์ง์ ์ฃผ์ ๊ฐ๊ฒฉ์ ๋ฏธ๋ฆฌ ์๊ณ ์๋ค. ์คํ์ด์ ์ฑ๋ฏผ์ด ์ค ๋๊ฐ ๋ ๋์ ์์ต๋ฅ ์ ๋ผ์ง ๋งํ๋ณด์!
[์ ๋ ฅ]
์ฒซ ๋ฒ์งธ ์ค์ ์คํ์ด์ ์ฑ๋ฏผ์ด์๊ฒ ์ฃผ์ด์ง ํ๊ธ์ด ์ฃผ์ด์ง๋ค.
๋ ๋ฒ์งธ ์ค์ 2021๋ 1์ 1์ผ๋ถํฐ 2021๋ 1์ 14์ผ๊น์ง์ MachineDuck ์ฃผ๊ฐ๊ฐ ๊ณต๋ฐฑ์ ๋๊ณ ์ฐจ๋ก๋๋ก ์ฃผ์ด์ง๋ค. ๋ชจ๋ ์ ๋ ฅ์ 1000 ์ดํ์ ์์ ์ ์์ด๋ค.
[์ถ๋ ฅ]
1์ 14์ผ ๊ธฐ์ค ์คํ์ด์ ์์ฐ์ด ๋ ํฌ๋ค๋ฉด "BNP"๋ฅผ, ์ฑ๋ฏผ์ด์ ์์ฐ์ด ๋ ํฌ๋ค๋ฉด "TIMING"์ ์ถ๋ ฅํ๋ค.
๋์ ์์ฐ์ด ๊ฐ๋ค๋ฉด "SAMESAME"์ ์ถ๋ ฅํ๋ค. ๋ชจ๋ ๊ฒฐ๊ณผ ๋ฐ์ดํ๋ฅผ ์ ์ธํ๊ณ ์ถ๋ ฅํ๋ค.
[์์]
- ์คํ์ด์ BNP๋ ์ฃผ์ด์ง ๊ธ์ก์ ์ด์ฉํด์ ์ต๋ํ ๋ง์ด ๊ตฌ๋งคํฉ๋๋ค.
- ๋ณด์ ํ ํ๊ธ์ผ๋ก ์ฃผ์์ ๊ฐ๊ฒฉ์ ๋๋ด์ ๋ 0๋ณด๋ค ํฌ๋ฉด ํด๋น ์ฃผ์์ ๋ชจ๋ ๋งค์ํฉ๋๋ค.
- ์ฑ๋ฏผ์ด์ TIMING์ 3์ผ ์ฐ์์ผ๋ก ํ๋ฝํ์ ๊ฒฝ์ฐ์๋ง ๊ตฌ๋งคํฉ๋๋ค.
- 3์ผ ์ฐ์์ผ๋ก ํ๋ฝํ๊ณ ๋ค์๋ ์ ์ฃผ์์ ๊ตฌ๋งคํ๋ฏ๋ก i+3๋ฒ์งธ ๊ฐ๊ฒฉ์ผ๋ก ๋งค์ํฉ๋๋ค.
- 3์ผ ์ฐ์์ผ๋ก ์์นํ๋ฉด ๋ค์๋ ์ ํด๋น ์ฃผ์์ i+3๋ฒ์งธ ๊ฐ๊ฒฉ์ผ๋ก ๋งค๋ํฉ๋๋ค. (์ฃผ์ ๋ณด์ ์์๋ง)
- 14์ผ ํ์ ์คํ์ด์ ์ฑ๋ฏผ์ด์ ํ๊ธ๊ณผ ๋ง์ง๋ง ๋ ์ฃผ์ ๊ฐ๊ฒฉ์ ๋ณด์ ์ฃผ์ ์๋ฅผ ๊ณฑํด์ ๋น๊ตํฉ๋๋ค.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[14];
StringTokenizer st = new StringTokenizer(br.readLine()," ");
for (int i = 0; i < 14; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
int JHmoney = N;
int JHstock = 0;
for (int i = 0; i < arr.length; i++) {
if (JHmoney / arr[i] > 0) {
int cnt = JHmoney / arr[i];
JHstock += cnt;
JHmoney -= cnt * arr[i];
}
}
int SMmoney = N;
int SMstock = 0;
for (int i = 0; i < arr.length - 3; i++) {
if ((arr[i] > arr[i + 1]) && (arr[i + 1] < arr[i + 2])) {
if (SMstock == 0) {
continue;
}
SMmoney += arr[i + 3] * SMstock;
SMstock = 0;
}
else if ((arr[i] < arr[i + 1]) && (arr[i + 1] > arr[i + 2])) {
if (SMmoney / arr[i + 3] > 0) {
int cnt = SMmoney / arr[i + 3];
SMstock += cnt;
SMmoney -= cnt * arr[i + 3];
}
}
}
int JHreturn = JHmoney + arr[arr.length - 1] * JHstock;
int Smreturn = SMmoney + arr[arr.length - 1] * SMstock;
if (JHreturn > Smreturn) {
System.out.println("BNP");
} else if (JHreturn < Smreturn) {
System.out.println("TIMING");
} else {
System.out.println("SAMESAME");
}
}
}
import Foundation
let N = Int(readLine()!)!
let arr = readLine()!.split(separator: " ").map { Int($0)! }
var JHmoney = N
var JHstock = 0
for i in 0..<arr.count {
if JHmoney / arr[i] > 0 {
let cnt = JHmoney / arr[i]
JHstock += cnt
JHmoney -= cnt * arr[i]
}
}
var SMmoney = N
var SMstock = 0
for i in 0..<arr.count - 3 {
if arr[i] < arr[i + 1] && arr[i + 1] < arr[i + 2] {
if SMstock == 0 {
continue
}
SMmoney += SMstock * arr[i + 3]
SMstock = 0
}
else if arr[i] > arr[i + 1] && arr[i + 1] > arr[i + 2] {
if SMmoney / arr[i + 3] > 0 {
let cnt = SMmoney / arr[i + 3]
SMstock += cnt
SMmoney -= cnt * arr[i + 3]
}
}
}
let JHreturn = JHmoney + arr.last! * JHstock
let SMreturn = SMmoney + arr.last! * SMstock
if JHreturn > SMreturn {
print("BNP")
} else if JHreturn < SMreturn {
print("TIMING")
} else {
print("SAMESAME")
}