SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
제 2 회
한양대학교 프로그래밍 경시대회
-Advanced Division-
2015. 11. 11
주최 및 후원
한양대학교 컴퓨터공학부
한양대학교 ACM-ICPC 대표팀
한양대학교 컴퓨터공학부 특성화사업단
한양대학교 컴퓨터공학부 어코드사업단
㈜ NAVER D2 & NCSOFT
대회 유의사항
1. 대회 진행시간은 3 시간 입니다.
2. 해결한 문제 수, 푸는데 사용한 시간에
따른 페널티로 순위를 결정합니다.
3. 대회 종료 후, 결과 발표 및 시상이
있을 예정입니다.
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 2 / 17
A. Pizza Party
시간제한 1초
대혁이는 알고리즘 시험 준비를 위해 새벽까지 공부를 하다가 배가 고파졌다. 피자성애자 대혁이는 피자를
시켜먹기로 결심하고 친구들을 모았다. 대혁이를 포함하여 N명이 모였다. 대혁이와 친구들은 모두 피자를 매
우 좋아하기 때문에 절대 자신보다 남이 많이 먹는 것을 원하지 않는다. 그래서 피자를 주문할 때 모든 인원
이 균등하게 먹을 수 있도록 잘라달라고 요청하기로 하였다.
대혁이는 바로 피자가게에 전화를 하여 주문을 하였지만 피자 가게가 문닫기 직전에 주문을 한 대혁이 때문
에 주인은 단단히 화가 나있다. 그래서 모든 인원이 균등하게 먹을 수 있도록 피자를 자르는 최소의 횟수를
알려주지 않으면 주문을 받아주지 않겠다고 했다.
아직 알고리즘 공부를 다 하지 못한 탓에 대혁이는 최소의 커팅 횟수를 계산하지 못한다. 대혁이를 도와 친
구들이 피자를 먹을 수 있도록 도와주자. 피자는 한 번 자를 때, 중심을 지나게 일자로 잘라준다고 한다. 또
한 피자를 모두 잘랐을 때 모든 조각의 크기는 균등하다.
입력
첫째 줄에 테스트 케이스의 개수 T(1≤T≤20)가 주어진다.
두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 피자를 먹기 위해 모
인 학생 N(1≤N≤50)명이 주어진다.
출력
각 테스트 케이스에 대하여 한 줄에 하나씩 친구들이 균등하게 피자를 먹을 수 있도록 하는 최소의 커팅 횟
수를 출력한다.
예제입력 예제출력
3
2
5
10
1
5
5
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 3 / 17
B. 피겨 스케이팅
시간제한 1초
피겨스케이팅 꿈나무인 나현이는 이번 동계올림픽에 출전했다. 나현이
는 이번 올림픽 금상을 목표로 하고 있기 때문에, 모든 참가자들 중에
가장 높은 점수를 얻기 위해 부단히 노력하였다.
피겨 스케이팅 종목은 1회전과 2회전으로 이루어져 있는데, 각 회마다
선수들은 펼친 무대에 대해서 기술점수와 예술점수를 부여 받는다. 1회
전에서는, 1번 선수부터 무대를 펼쳐 기술점수와 예술점수를 부여 받
고, 차례대로 2번선수, 3번선수 …… N번 선수가 무대를 펼쳐 각각 기
술점수와 예술점수를 얻는다. 반면에 2회전에서는, 1회전에서 기술점수
와 예술점수의 합이 낮은 선수부터 무대를 펼쳐서 기술점수와 예술점
수를 부여 받게 된다. 대회를 모두 끝마친 나현이는 문득 1위가 누구
인 지 궁금해졌다. N명의 참가자에 대한 1회전, 2회전의 기술점수와 예
술점수가 주어질 때, 이번 올림픽에서 1위를 한 선수의 점수를 구해보
자.
입력
첫째 줄에 테스트 케이스의 개수 T(1≤T≤100)가 주어진다.
두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 참가자의 수 N(1≤N
≤1,000)이 주어진다. 이어지는 N줄에 걸쳐서 1번 참가자부터 N번 참가자까지 각 참가자의 1회전 예술점
수와 기술점수가 공백으로 구분되어 주어진다. 다음 N줄에는 1회전의 기술점수와 예술점수의 합이 낮은 순
서대로 각 참가자의 2회전 예술점수와 기술점수가 공백으로 구분되어 주어진다. 각 예술점수와 기술점수는
0이상 1,000이하의 정수로 주어진다.
출력
각 테스트 케이스에 대해 한 줄에 하나씩 1위를 한 선수의 1회전과 2회전의 기술점수와 예술점수를 모두 합
한 결과를 출력한다. 1위를 한 선수가 여려 명일 수도 있다.
예제입력 예제출력
1
5
13 16
27 25
23 25
16 12
9 1
2 7
20 19
23 16
0 6
22 16
90
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 4 / 17
C. 불량 컬러 사진 필터
시간제한 1초
사진 매니아인 단디는 필터라는 새로운 개념에 빠져들었다. 앤디 워홀의 팬이기도 했던 단디는 하나의 사진
을 여러 컬러로 바꾸어 보기로 하고 마릴린 먼로의 사진과 새로운 필터를 주문하였는데, 이 필터는 R->G-
>B->R 순서로 색을 바꿔주는 새로운 개념의 필터였다. 허나 이 필터는 신제품이라 몇 가지 문제가 있었는데,
하나는 사진 크기만큼 충분한 크기의 필터를 판매하지 않는 다는 것 이었고, 필터에 가끔 잘못 만들어진 부
분이 있어 R->B->G->R 로 색이 바뀌는 부분이 있을 수 있다는 것이다. 또한 주문한 사진에는 나무로 된
틀이 있어, 필터의 일부분이 사진을 벗어날 수 없다. 과연 단디는 이 필터를 가지고 원하는 결과물을 만들어
낼 수 있을까?
입력
첫째 줄에 테스트 케이스의 수 T(1≤T≤10)가 주어진다.
두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에는 필터의 Height(1
≤Height≤50), Width(1≤Width≤50), 사진의 Height(1≤Height≤200), Width(1≤Width≤200)가 공
백으로 구분되어 주어진다. 다음 줄에 필터의 Height, Width만큼 A(정상) 혹은 R(비정상) 데이터가 주어진
다. 그 이후에 원본 사진의 R, G, B 데이터가 Height, Width만큼, 그리고 목적 사진의 R, G, B 데이터가
Height, Width만큼 주어진다.
**주의 필터에서의 R(비정상)과 사진에서의 R(색상)은 다른 의미라는 것을 주의하자.
출력
각 테스트 케이스에 대해 한 줄에 하나씩 필터를 사용해서 원본 사진으로 목적 사진을 만들 수 있으면 “YES”
아니면 “NO” 를 출력한다.
예제입력 예제출력
3
2 2 4 4
AA
AR
RRRR
RRRR
RRRR
RRRR
RRRR
RRRR
RRGG
RRGB
3 2 6 5
AA
AR
RA
RRRRR
RRRRR
RRRRR
YES
YES
NO
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 5 / 17
RRRRR
RRRRR
RRRRR
GGRRR
GBRRR
BRRGR
RBBBR
RGGGR
RRRRR
2 2 4 4
AA
AR
RRRR
RRRR
RRRR
RRRR
RRRR
RRRR
RRGG
RRGG
Hint 1. 첫 번째 예제의 경우 좌 하단에 한 번 필터를 적용 하면 결과 이미지를 만들어 낼 수 있다.
Hint 2. 두 번째 예제의 경우 아래와 같이 필터를 총 4 번 적용하면 목적 사진을 만들어 낼 수 있다.
Hint 3. 세 번째 예제의 결과는 만들어 낼 수 없다.
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 6 / 17
D. 솔로와 솔로와 솔로의 연결고리
시간제한 1초
한양대학교에 다니고 있는 정무, 윤성이, 주홍이는 여자친구가 없다. 믿었던 다른 친구들도 하나 둘씩 여자친
구가 생겨 떠나갔고, 결국 셋만 남게 되었다. 얼마 전 여자친구가 생긴 민철이와 시비가 붙은 주홍이는 “이
게 여자친구도 없는 게 까불어!”라는 민철이의 말에 대꾸조차 못하고 고개를 떨구었다. 이를 본 정무와 윤성
이는 마음이 아파, 주홍이가 재미있어 할 만한 게임으로 주홍이를 위로 해주고자 한다! 곰곰이 고민하던 둘
은 “형! 세상은 둘이 아니라 셋이 사는 거에요!”라며 ‘솔로와 솔로와 솔로의 연결고리’ 라는 게임을 주홍이
에게 제안한다. 게임이 재미있어 보였던 세 명은 당장 대운동장으로 뛰쳐나가 게임을 해보기로 했다. 게임의
규칙은 다음과 같다(이게임은 솔로 세 명만 참가할 수 있도록 만들어 졌다)
< 솔로와 솔로와 솔로의 연결고리 규칙>
① 솔로 세 명이 게임에 참가한다. 1번째 플레이어가 게임의 술래이다. 세 명이 순서대로 플레이를
하며, 라운드가 지나도 플레이 순서는 바뀌지 않는다.
② 1번째 플레이어(술래)는 출발점에서 아무 방향으로나 정확히 N걸음을 걸어가서 서있는다. N은
1번째 플레이어의 마음대로 결정한다.
③ 2번째로 플레이 하는 사람은 1번째 플레이어가 서있는 위치에서 출발하며, 1번째 플레이어가 걸
어온 길과 직각이 되도록 걸어가서 서있는다. 이때 2번째 플레이어는 1번째 플레이어의 걸음 수
보다 추가로 정확히 M발 더 걸어가야 한다. M은 2번째 플레이어의 마음대로 결정한다.
④ 3번째 플레이어는 2번째 플레이어가 도착한 위치에서, 2번째 플레이어의 걸음 수 보다 정확히
M발 더 걸어서 맨 처음 출발점으로 돌아가야 한다. 3번째 플레이어가 돌아갈 수 있으면 술래의
패배, 돌아갈 수 없다면 술래의 승리로 라운드가 끝이 난다. (이 때, 지나치거나 모자람 없이, 정
확히 원래 출발점에 도착한 경우를 돌아가는데 성공했다고 정의한다)
⑤ 2,3 번째 플레이어는 한 팀이며, 3번째 플레이어가 출발점에 도착할 수 있도록 해서, 술래를 이
기는 것이 2,3번째 플레이어의 목적이다.
⑥ 걸음 수는 항상 자연수이며, 솔로 세 명의 한 걸음은 모두 보폭이 동일하다.
오늘 게임은 윤성이가 술래를 맡도록 하여, 윤성, 정무, 주홍 순서대로 게임을 진행하기로 하였다. 그런데 막
상 게임을 해보자, 정무와 주홍이는 번번히 패배하기만 하였고, 안 그래도 우울한 주홍이는 더 우울해져 집
에 가려고 했다. 2번째 플레이어를 맡은 정무는 이 게임의 승패는 자신에게 달려있다는 것을 알았다! 윤성이
가 처음 걸어간 걸음 수 N이 주어졌을 때, 정무와 주홍이가 이길 수 있는 추가 걸음 수 M을 찾아주는 프로
그램을 만들어 가여운 솔로들을 도와주자!
입력
첫째 줄에 테스트케이스의 수 T(1≤T≤100)가 주어진다.
각 테스트 케이스 첫째 줄에, 각 줄에 윤성이가 걸어간 걸음의 수 N(0≤N≤100,000)이 주어진다.
출력
각 테스트케이스의 입력에 대해 한 줄에 하나씩 윤성이를 이길 수 있는 추가 걸음 수 M을 출력한다. 만약
윤성이를 이길 수 있는 방법이 없다면 -1을 출력 한다. 정답은 32-bit 정수형을 넘지 않는 범위이다.
예제입력 예제출력
2
6
8
2
-1
Hint. 첫 번째 테스트 케이스의 경우, 윤성이가 6발 걸어가게 되면, 규칙에 따라 정무가 8발, 주홍이가 10발
걸어서 원래 출발점으로 돌아오는 것이 가능하다. 이 때 추가 걸음 수 M은 2발.
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 7 / 17
E. 이진딸기(Binary Strawberry)
시간제한 1초
이진딸기는 자신의 차례에 해당하는 4비트의 2진수 중 1이 들어가는 곳에만 딸기를 외쳐야 하는 게임이다.
2진수의 숫자는 (10진수로) 1부터 15까지 1씩 증가한 뒤 다시 1까지 감소하는 규칙을 반복한다. (1, 2, 3 …
15, 14, 13 … 2, 1, 2, 3 …)
예를 들어, 선 플레이어의 경우 10진수 1(2진수 0001)에 해당하는 “ 딸기 “를 외쳐야 하며, 선
플레이어로부터 진행방향으로 14차례 뒤인 주홍이는 10진수 15(2진수 1111)에 해당하는 “딸기 딸기 딸기
딸기 “를, 15차례 뒤인 우태는 10진수 14(2진수 1110)에 해당하는 “딸기 딸기 딸기 ”를 외쳐야 한다.
마지막 플레이어가 구호를 외친 후 다시 선 플레이어부터 다음 구호를 외친다. 즉 5명이 게임을 하는 경우
선 플레이어는 1, 6, 11, 14, 9, 4, ……에 해당하는 구호를, 선 플레이어로부터 진행방향으로 3명 떨어진 플레
이어는 4, 9, 14, 11,6, 1, ……를 외쳐야 한다.
이진딸기 게임을 잘 하지 못하는 주홍이는 자기 차례가 돌아올 때마다 번번이 정해진 구호를 외치지 못한다.
옆자리에 앉은 우태는 연좌제(옆 사람도 함께 벌주를 먹는 룰) 때문에 번번이 주홍이와 함께 벌주를 마신 탓
에, 다음 게임부터는 주홍이에게 미리 외쳐야 할 구호를 알려주기로 했다. 단, 모든 플레이어는 주홍이가 M
개의 구호를 외치는 동안 구호를 틀리지 않으며, 도중에 게임이 중단되는 경우는 없다.
입력
첫째 줄에는 테스트 케이스의 수 T(1≤T≤10)가 주어진다.
두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스 별로 첫째 줄에 게임 플레이어의
수 N(1≤N≤1,000), 주홍이가 선 플레이어로부터 진행 방향으로 떨어진 거리 K(0 ≤ 𝐾 < 𝑁), 주홍이가 차
례대로 외쳐야 할 구호의 개수 M (1 ≤ M ≤ 100) 이 공백으로 구분되어 입력된다.
출력
각 테스트 케이스에 대해 주홍이의 차례가 왔을 때 외쳐야 할 구호를 게임이 진행되는 순서에 따라 한 줄에
하나씩 M개를 출력한다. 는 m, 딸기는 S로 출력하되 공백은 허용하지 않는다.
예제입력 예제출력
1
5 3 4
mSmm
SmmS
SSSm
SmSS
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 8 / 17
F. 자신을 설명하는 수
시간제한 1초
어려서부터 수학에 큰 관심을 보였던 은빈이는 혼자서 수를 가지고 놀곤 했다. 하지만 많았던 관심에 비해
은빈이의 수학실력은 좋지 못하였고 때문에 친구인 수학 영재 지후에게 맨날 놀림을 당하기 일쑤였다. 어렸
을 때부터 놀림을 받아온 은빈이는 더 이상 참지 못하고 지후에게 제안을 한다.
“내가 수학 퀴즈를 낼 테니까 네가 그 퀴즈를 못 풀면 더 이상 나를 놀리지마!!
하지만 지후는 이조차도 가소롭게 생각하였고 제안을 받아드려 주었다. 막상 제안은 했지만 은빈이의 수학
지식은 매우 부족했다. 지후는 수학 지식이 풍부했기 때문에 지후가 못 맞출 퀴즈를 내려면 지후가 모르는
새로운 내용이 필요했고 은빈이는 이 세상에 없는 새로운 수인 “자신을 설명하는 수”라는 것을 만들게 되었
다. 예를 들어, 61134447444의 자신을 설명하는 수는 6이 1개, 1이 2개, 3이 1개, 4가 3개, 7이 1개, 4가 3
개 있으므로 611231437143이다. 이러한 방식으로 611231437143의 자신을 설명하는 수를 구해보면
6112213111413171114131이 된다.
자신을 설명하는 수를 계속 구해보던 은빈이는 규칙을 발견했다. 어떤 수 N에 대해 자신을 설명하는 수를
계속 구해나갈 때 얻을 수 있는 각 수들의 자릿값(Digit, 각 자리의 숫자) 중에서 가장 큰 자릿값(Digit) M
을 구할 수 있다는 사실이다. 예를 들어, N이 892일 경우에는 M이 9가 된다. 왜냐하면 892의 자신을 설명
하는 수는 819121이고 819121의 자신을 설명하는 수는 811191112111이고 자신을 설명하는 수를 계속
구하더라도 9보다 큰 자릿값(Digit)는 나타날 수 없기 때문이다. (자릿값(Digit)는 0~9임을 상기하자!) 따라
서 N = 892일 때는 M = 9 이다.
은빈이는 위의 생각을 바탕으로 지후에게 N을 알려주고 M을 맞춰보라는 수학 퀴즈를 내고자 한다. 은빈이
는 문제를 만드는데 성공했지만 머리를 너무 써버린 탓에 문제의 답까지는 구하지 못했다. 은빈이를 대신해
문제의 답을 구해주고 은빈이가 지후에게 수학 퀴즈를 내서 지후를 기를 꺾을 수 있도록 도와주자.
입력
첫째 줄에는 테스트 케이스의 수 T(1≤T≤50)가 주어진다.
두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 N(1≤N≤109
)이
주어진다.
출력
각 테스트 케이스에 대해 한 줄에 하나씩 N에 대한 M을 출력한다.
예제입력 예제출력
3
987132
1
1122112211
9
3
3
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 9 / 17
G. 조건부 최장 부분 수열
시간제한 1초
자연수들로 이루어진 무작위 순서의 수열이 주어 질 때 아래 조건들 가운데 하나라도 만족하는 부분수열
(Subsequence)들 중 가장 긴 부분수열(Longest Subsequence)의 길이를 출력하시오. (조건 1,2,3 중 하
나라도 만족하면 된다.)
조건 1: 증가하는 수열
예) 1, 3, 5, 6, 9, 13
조건 2: 감소하는 수열
예) 11, 8, 4, 3, 1
조건 3: 증가하다 감소하는 수열 (단, 증가에서 감소로 바뀌는 부분이 한번만 존재)
예) 1, 3, 4, 8, 5, 2
예를 들어 수열 {1, 5, 3, 4, 8, 7, 2, 6}가 주어지면 위 조건 중 하나라도 만족하는 가장 긴 부분수열은 {1, 3,
5, 8, 7, 2}, {1, 3, 4, 8, 7, 6} 두 개가 되므로 길이 7을 출력하면 된다.
※ 부분수열(Subsequence)이란 원래의 수열에서 순서는 유지한 채 수열을 이루는 항 중에 일부만 모아
만들어진 수열을 말한다.
입력
첫째 줄에 테스트 케이스의 수 T(1≤T≤100)가 입력된다.
두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에는 수열의 길이
N(2≤N≤1,000)이 주어진다. 테스트 케이스의 두 번째 줄에는 1부터 N까지의 자연수로 이루어진 길이 N
의 수열이 입력된다. 수열을 이루는 자연수들은 해당 수열 내에서 서로 중복되지 않는다.)
출력
각 테스트 케이스에 대해 한 줄에 하나씩 주어진 수열에 대해 위 설명에 해당하는 부분수열 가운데 가장 긴
부분수열의 길이를 출력한다.
예제입력 예제출력
3
5
1 2 5 3 4
3
3 2 1
8
1 5 3 4 8 7 2 6
4
3
6
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 10 / 17
H. 아쿠아맨
시간제한 1초
박주람(25세, 남)군은 한 평생 수 없이 많은 어장관리를 당해왔다. 어김없이 지난 연애도 어장 안에서 헤엄
치다가 끝나고 난 후에 주람이는 자신이 평생 어장 안에서 헤엄치다가 끝날 운명이라는 것을 깨닫고 말았다.
이에 주람이는 모든 것을 포기하고 어장의 크기를 구하는 연구에 한 평생을 바치기로 한다. 그 결과 주람이
는 자신이 속한 어장을 수치화 해서 표현할 수 있게 되었고 자신이 속한 어장을 2차원 지도로 표현할 수 있
게 되었다. 너비 N, 높이가 100인 어장 안에는 N개의 기둥이 있고 이 기둥들 안에 담을 수 있는 최대 부피
가 어장의 크기가 된다.
주람이는 M만큼 인내할 수 있는데, M 보다 어장의 크기가 작거나 같게 되면 주람이는 평생 어장에서 헤엄치
게 되고 이 때 SWIM 을 출력한다. 어장의 크기가 주람이의 인내심 M 보다 크게 되면 주람이는 어장에서
헤엄치다 결국 차이게 된다. 이 때는 DUMPED를 출력한다. 단, 어장의 크기가 0일 경우에는 주람이가 아예
어장에 들어가지 못하므로 처참하게 실패하게 된다. 이 때는 FAIL을 출력한다.
예를 들어, 너비 N이 10이고 기둥의 높이가 각 3, 1, 6, 1, 7, 5, 0, 3, 0, 8인 어장의 크기는 27이다.
입력
첫째 줄에 테스트 케이스의 수 T(1≤T≤100)가 주어진다.
두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트케이스는 첫째 줄에 너비 N(1≤N≤100)
과 주람이의 인내심 M(1≤M≤10,000)이 주어진다. 그 다음 줄에는 N개의 기둥의 높이가 주어진다. 기둥
의 높이는 0이상 100이하이다.
출력
각 테스트 케이스에 대해 한 줄에 하나씩 SWIM, DUMPED, FAIL 중 알맞은 것을 출력한다.
예제입력 예제출력
4
3 1
1 0 1
10 25
3 1 6 1 7 5 0 3 0 8
5 5
3 0 5 0 3
3 1
1 2 1
SWIM
DUMPED
DUMPED
FAIL
뒷장에 이어서 힌트...
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 11 / 17
Hint. 두 번째 예제는 다음과 같은 어장의 형태를 가지고 있으며, 어장의 크기는
위의 그림에서 점 모양이 채워진 부분의 크기로써, 2 + 5 + 2 + 7 + 4 + 7 = 27 이다.
이때, 주람이의 인내심 M은 25이므로 인내심 M보다 어장의 크기가 더 큰 상황이다. 따라서 “DUMPED”를
출력한다.
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 12 / 17
I. 킹카의 고민
시간제한 1초
2014년 ‘퀸카의 고민’에서 패배한 준범이는 그 후 한 학기를 휴학 하며 실연의 아픔을 겪었다. 휴학을 하던
준범이는 극심한 스트레스 탓에 살이 찌기 시작 했고, 기분 전환도 할 겸 운동을 시작하여 3달 만에 30kg
감량에 성공했다! 인생사 새옹지마, 복학한 준범이는 다이어트로 잘생겨진 외모로 킹카 복학생으로 불리게
되었고, 급기야 같은 과의 지수와 지원이의 고백을 동시에 받게 되었다. 준범이는 작년의 아픔을 떠올리며,
일주일 간 보낸 메시지 수 따위로 사람을 판단하는 것은 어리석은 짓이라는 생각을 하게 되었고, 조금 고민
하다가 두 친구를 모두 사귀기로 마음 먹었다! 수학적으로 치밀하게 계획한 준범이는 이틀 동안 하루는 지수
를 하루는 지원이를 만나기로 계획했다.
모든 고민이 끝난 것처럼 보였지만, 준범이 앞에는 새로운 시련이 남아 있었다. 바로 두 친구와 데이트할 데
이트 코스를 직접 짜야 한다는 것이었다. 멀리 가기 귀찮은 준범이는 두 친구 모두 왕십리에서 데이트를 할
계획이었고, 지수와 갔던 가게에 지원이와 가게 되면, 양다리를 들킬 가능성이 있기 때문에 한 친구와 갔던
가게는 그 다음 친구와의 데이트에서는 배제하기로 하였다. 준범이가 짠 데이트 코스에 따르면 왕십리에 있
는 N개의 종류의 가게를 순서대로 방문할 예정이다. 같은 종류의 가게는 두 번 이상 방문하지 않는다. 각 데
이트 장소에 있는 한 종류의 가게는 각각 𝑎1, 𝑎2……𝑎𝑖…𝑎 𝑁 개가 존재 한다.
예를 들어, N=3이고 𝑎1 = 3, 𝑎2 = 5, 𝑎3 = 4 이라고 하면 데이트 코스에 있는 가게의 종류가 3개이고 각
각 종류 별로 가게가 3개, 5개, 4개 있는 것이다. 문제에서 설명한 조건을 지키면서 이틀 간의 데이트코스를
짜려고 할 때, 준범이가 짤 수 있는 데이트 코스의 수를 구해주자!
입력
첫째 줄에 테스트 케이스의 수 T(1 ≤ T ≤ 100)가 입력된다.
둘째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 준범이가 방문하려고 하
는 데이트 코스의 가게 종류의 수 N(0 ≤ N ≤ 10)이 주어지고, 둘째 줄에, 가게의 종류 별 개수를 나타내는
정수 𝑎𝑖(0 ≤ 𝑎𝑖 ≤ 9)가 N개 주어진다. 각 정수는 공백으로 구분된다.
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 13 / 17
출력
각 테스트케이스에 대해 한 줄에 하나씩 문제에서 주어진 조건을 지키면서 이틀 간의 데이트코스를 짜려고
할 때, 짤 수 있는 데이트 코스의 경우의 수를 한 줄에 하나씩 출력한다.
예제입력 예제출력
2
2
3 4
3
2 2 2
72
8
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 14 / 17
J. Noogler Junhee
Time Limit: 1 second
Ever since Junhee got a job at ‘google’, he made an interesting observation. ‘goog’ was the
palindrome of his company name! A palindrom is a word, phrase, number, or other sequence of
characters which reads the same backward or forward. For example, ‘madam’, ‘abba’, or ‘lol’ are
the palindromes. Just as Junhee found out ‘goog’ from ‘google’, he wants to find out length of the
longest substring which is palindrome from given string.
입력
Your program is to read from standard input. The input consists of T (1≤T≤30) test cases. Number
of test cases T is given in the first line of the input. Each test cases contains one string, and its
maximum length is no longer than 200,000.
출력
Your program is to write to standard output. Print exactly one line for each test case. The line should
contain an integer representing the maximum length of the longest palindrome substring.
Sample Input Sample Output
2
google
heymadamimadamthanks
4
11
Hint. For the first case, ‘goog’ is the longest palindrome substring. For the latter case,
‘madamimadam’ is the longest palindrome substring.
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 15 / 17
K. Hexagon
시간제한 1초
창수는 매우 특별한 육각형모양의 초콜릿을 생일선물로 받았다. 창수는 초콜릿을 관찰한 결과 두 가지 특징
을 알아냈다.
특징 1. 이 육각형퍼즐의 모서리에서 이루는 각이 120°
를 이룬다.
특징 2. 이 육각형 퍼즐은 각 𝑖번째 변이 𝑎𝑖cm 을 이룬다.
창수는 특이한 식습관이 있는데 초콜릿을 먹을 때만큼은 초콜릿을 정확히 각 변이 1cm인 정삼각형모양으로
잘라서 먹으려고 한다는 것이다. 창수는 몇 개의 정삼각형모양의 초콜릿을 먹을 수 있는지 궁금해졌다. 창수
가 최대 몇 개의 정삼각형모양의 초콜릿을 먹을 수 있는지 알려주자!
입력
첫째 줄에 테스트 케이스의 수 T(1≤T≤10,000)가 주어진다.
둘째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 각 육각형의 각 변의 길
이를 의미하는 여섯 개의 양의 정수 𝑎1, 𝑎2, 𝑎3, 𝑎4, 𝑎5, 𝑎6 이 입력으로 주어진다. i가 1이상 5이하일때,
𝑎𝑖 는 𝑎𝑖+1 과 인접해 있으며 𝑎6은 𝑎1과 인접해 있다. 각 변의 길이는 100이하의 자연수이다. 각 변의 길
이로 위의 2가지 성질을 만족하는 육각형이 존재함은 보장된다.
출력
각 테스트 데이터에 대해서 한 줄에 하나씩 창수가 먹을 수 있는 최대한의 정삼각형모양의 초콜릿 개수를 출
력한다.
예제입력 예제출력
2
1 1 1 1 1 1
1 2 1 2 1 2
6
13
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 16 / 17
L. Blue crab
시간제한 1초
전통적인 체스 게임은 폰, 룩, 비숍, 나이트, 킹, 퀸 6개의 말로 진행된
다. 체스 게임프로 선수인 세일이는 이번 국제대회에도 참가하기로 하
였는데, 이번 국제 대회부터 새로운 말이 추가되어 게임이 진행된다고
한다. 새로운 말의 이름은 crab이다. crab은 체스판 내에서 좌, 우로 1
칸 또는 2칸 이동할 수 있다.
세일이는 체스 대회를 준비하기 위한 연습을 하던 도중, 문득 세로 H
칸, 가로 W칸의 체스판에 K개의 crab을 놓으면서, 각각의 crab이 서
로를 공격할 수 없는 위치에만 놓으려고 한다. 각각의 crab이 구분되지
않는다고 할 때, K개의 crab을 놓는 경우의 수를 구해보자.
입력
첫째 줄에 테스트 케이스의 수 T(1≤T≤100)가 주어진다.
둘째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 세 개의 정수
H(1≤H≤50), W(1≤W≤50), K(1≤K≤100) 가 주어진다. H는 체스판의 세로 크기, W는 체스판의 가로
크기, K는 놓아야 할 crab의 개수를 의미한다.
출력
각 테스트 케이스에 대해 한 줄에 하나씩 가능한 방법의 수를 1,000,000,007 로 나눈 나머지를 출력한다.
예제입력 예제출력
3
3 3 1
1 3 2
2 3 2
9
0
9
2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division)
페이지 17 / 17
M. Rider Byeongkyu
Time Limit: 1 second
Byeongkyu is born athlete except he doesn’t know how to ride bicycle. After taking the year off from
the University, he learned how to ride bicycle and it fascinated him. Now, he is always with his bicycle
and does not want to stop riding it. From given starting point to ending point, let’s find out the
longest time that Byeongkyu can ride his joyfulness.
입력
Your program is to read from standard input. The input consists of T test cases. The number of test
cases 'is given in the first line of the input. (T is no larger than 20.) Each test case starts with a line
containing four integers N, M, S, E. N denotes the number of vertices and it is no larger than 500. M
denotes the number of edges. S and E denotes starting point and ending point respectively. For next
M lines are consists of A, B, and V which denotes it takes time V to reach from A to B. (Be careful it’s
not vice versa.)
출력
Your program is to write to standard output. Print exactly one line for each test case. The line should
contain an integer representing the maximum number of the time such that Byeongkyu can ride his
bicycle. Print -1 if he can ride his bicycle infinitely.
Sample Input Sample Output
2
3 3 1 2
1 2 5
1 3 2
3 2 4
4 5 1 3
1 2 3
2 3 4
1 4 2
4 2 2
3 4 3
6
-1
Hint. For the first case, path 1-3-2 takes time 6 and for the second case he can ride infinitely
as 1-2-3-4-2-3-4 ...

Más contenido relacionado

La actualidad más candente

[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced partNAVER D2
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제NAVER D2
 
서울대학교 2017 SNUPC 문제 - Advanced
서울대학교 2017 SNUPC 문제 -  Advanced서울대학교 2017 SNUPC 문제 -  Advanced
서울대학교 2017 SNUPC 문제 - AdvancedNAVER D2
 
인하대 프로그래밍 경진대회 - 문제
인하대 프로그래밍 경진대회 - 문제인하대 프로그래밍 경진대회 - 문제
인하대 프로그래밍 경진대회 - 문제NAVER D2
 
[KAIST - RUN] 프로그래밍 경진대회 문제
[KAIST - RUN] 프로그래밍 경진대회 문제[KAIST - RUN] 프로그래밍 경진대회 문제
[KAIST - RUN] 프로그래밍 경진대회 문제NAVER D2
 
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제NAVER D2
 
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제NAVER D2
 
서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제NAVER D2
 
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이NAVER D2
 
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이NAVER D2
 
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이NAVER D2
 
한양대 2017 hcpc advanced division 문제
한양대 2017 hcpc advanced division 문제한양대 2017 hcpc advanced division 문제
한양대 2017 hcpc advanced division 문제NAVER D2
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이NAVER D2
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제NAVER D2
 
shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이HYUNJEONG KIM
 
쏙 알고스터디 01
쏙 알고스터디 01쏙 알고스터디 01
쏙 알고스터디 01Jisu Lee
 
세미나
세미나세미나
세미나Dongyi Kim
 
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이NAVER D2
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이NAVER D2
 
Dynamic programming
Dynamic programmingDynamic programming
Dynamic programmingskku_npc
 

La actualidad más candente (20)

[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
 
서울대학교 2017 SNUPC 문제 - Advanced
서울대학교 2017 SNUPC 문제 -  Advanced서울대학교 2017 SNUPC 문제 -  Advanced
서울대학교 2017 SNUPC 문제 - Advanced
 
인하대 프로그래밍 경진대회 - 문제
인하대 프로그래밍 경진대회 - 문제인하대 프로그래밍 경진대회 - 문제
인하대 프로그래밍 경진대회 - 문제
 
[KAIST - RUN] 프로그래밍 경진대회 문제
[KAIST - RUN] 프로그래밍 경진대회 문제[KAIST - RUN] 프로그래밍 경진대회 문제
[KAIST - RUN] 프로그래밍 경진대회 문제
 
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
 
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
 
서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제
 
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이
 
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
 
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
 
한양대 2017 hcpc advanced division 문제
한양대 2017 hcpc advanced division 문제한양대 2017 hcpc advanced division 문제
한양대 2017 hcpc advanced division 문제
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
 
shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이
 
쏙 알고스터디 01
쏙 알고스터디 01쏙 알고스터디 01
쏙 알고스터디 01
 
세미나
세미나세미나
세미나
 
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
 
Dynamic programming
Dynamic programmingDynamic programming
Dynamic programming
 

Destacado

Softcon hack your_service
Softcon hack your_serviceSoftcon hack your_service
Softcon hack your_serviceHeoGyu
 
경희대학교 Softcon 발표자료(2015/11/21)
경희대학교 Softcon 발표자료(2015/11/21)경희대학교 Softcon 발표자료(2015/11/21)
경희대학교 Softcon 발표자료(2015/11/21)Ahn Kyewan
 
[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbedsangyun han
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?nexusz99
 
스타트업 & 벤처기업
스타트업 & 벤처기업스타트업 & 벤처기업
스타트업 & 벤처기업hemarkum
 
Memcached의 확장성 개선
Memcached의 확장성 개선Memcached의 확장성 개선
Memcached의 확장성 개선NAVER D2
 
(Tugdual grall) no sql-hadoop
(Tugdual grall)   no sql-hadoop(Tugdual grall)   no sql-hadoop
(Tugdual grall) no sql-hadoopNAVER D2
 
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)NAVER D2
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android AnimationNAVER D2
 
The platform 2011
The platform 2011The platform 2011
The platform 2011NAVER D2
 
[D2 오픈세미나]2.모바일웹디버깅
[D2 오픈세미나]2.모바일웹디버깅[D2 오픈세미나]2.모바일웹디버깅
[D2 오픈세미나]2.모바일웹디버깅NAVER D2
 
[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선NAVER D2
 
성준영 소프트콘 발표
성준영 소프트콘 발표성준영 소프트콘 발표
성준영 소프트콘 발표Junyoung Sung
 
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
[D2 오픈세미나]5.robolectric 안드로이드 테스팅[D2 오픈세미나]5.robolectric 안드로이드 테스팅
[D2 오픈세미나]5.robolectric 안드로이드 테스팅NAVER D2
 
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & RankingIan Choi
 
[D2대학생세미나]산넘어 산, 음원서비스 세이렌 개발기
[D2대학생세미나]산넘어 산, 음원서비스 세이렌 개발기[D2대학생세미나]산넘어 산, 음원서비스 세이렌 개발기
[D2대학생세미나]산넘어 산, 음원서비스 세이렌 개발기NAVER D2
 
[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523NAVER D2
 
[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwonNAVER D2
 
[Hello world]git internal
[Hello world]git internal[Hello world]git internal
[Hello world]git internalNAVER D2
 

Destacado (20)

OpenStack!
OpenStack!OpenStack!
OpenStack!
 
Softcon hack your_service
Softcon hack your_serviceSoftcon hack your_service
Softcon hack your_service
 
경희대학교 Softcon 발표자료(2015/11/21)
경희대학교 Softcon 발표자료(2015/11/21)경희대학교 Softcon 발표자료(2015/11/21)
경희대학교 Softcon 발표자료(2015/11/21)
 
[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
 
스타트업 & 벤처기업
스타트업 & 벤처기업스타트업 & 벤처기업
스타트업 & 벤처기업
 
Memcached의 확장성 개선
Memcached의 확장성 개선Memcached의 확장성 개선
Memcached의 확장성 개선
 
(Tugdual grall) no sql-hadoop
(Tugdual grall)   no sql-hadoop(Tugdual grall)   no sql-hadoop
(Tugdual grall) no sql-hadoop
 
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
 
The platform 2011
The platform 2011The platform 2011
The platform 2011
 
[D2 오픈세미나]2.모바일웹디버깅
[D2 오픈세미나]2.모바일웹디버깅[D2 오픈세미나]2.모바일웹디버깅
[D2 오픈세미나]2.모바일웹디버깅
 
[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선
 
성준영 소프트콘 발표
성준영 소프트콘 발표성준영 소프트콘 발표
성준영 소프트콘 발표
 
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
[D2 오픈세미나]5.robolectric 안드로이드 테스팅[D2 오픈세미나]5.robolectric 안드로이드 테스팅
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
 
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
 
[D2대학생세미나]산넘어 산, 음원서비스 세이렌 개발기
[D2대학생세미나]산넘어 산, 음원서비스 세이렌 개발기[D2대학생세미나]산넘어 산, 음원서비스 세이렌 개발기
[D2대학생세미나]산넘어 산, 음원서비스 세이렌 개발기
 
[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523
 
[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon
 
[Hello world]git internal
[Hello world]git internal[Hello world]git internal
[Hello world]git internal
 

Más de NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

Más de NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

2015 한양대학교 프로그래밍 경시대회 - advanced division

  • 1. 제 2 회 한양대학교 프로그래밍 경시대회 -Advanced Division- 2015. 11. 11 주최 및 후원 한양대학교 컴퓨터공학부 한양대학교 ACM-ICPC 대표팀 한양대학교 컴퓨터공학부 특성화사업단 한양대학교 컴퓨터공학부 어코드사업단 ㈜ NAVER D2 & NCSOFT 대회 유의사항 1. 대회 진행시간은 3 시간 입니다. 2. 해결한 문제 수, 푸는데 사용한 시간에 따른 페널티로 순위를 결정합니다. 3. 대회 종료 후, 결과 발표 및 시상이 있을 예정입니다.
  • 2. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 2 / 17 A. Pizza Party 시간제한 1초 대혁이는 알고리즘 시험 준비를 위해 새벽까지 공부를 하다가 배가 고파졌다. 피자성애자 대혁이는 피자를 시켜먹기로 결심하고 친구들을 모았다. 대혁이를 포함하여 N명이 모였다. 대혁이와 친구들은 모두 피자를 매 우 좋아하기 때문에 절대 자신보다 남이 많이 먹는 것을 원하지 않는다. 그래서 피자를 주문할 때 모든 인원 이 균등하게 먹을 수 있도록 잘라달라고 요청하기로 하였다. 대혁이는 바로 피자가게에 전화를 하여 주문을 하였지만 피자 가게가 문닫기 직전에 주문을 한 대혁이 때문 에 주인은 단단히 화가 나있다. 그래서 모든 인원이 균등하게 먹을 수 있도록 피자를 자르는 최소의 횟수를 알려주지 않으면 주문을 받아주지 않겠다고 했다. 아직 알고리즘 공부를 다 하지 못한 탓에 대혁이는 최소의 커팅 횟수를 계산하지 못한다. 대혁이를 도와 친 구들이 피자를 먹을 수 있도록 도와주자. 피자는 한 번 자를 때, 중심을 지나게 일자로 잘라준다고 한다. 또 한 피자를 모두 잘랐을 때 모든 조각의 크기는 균등하다. 입력 첫째 줄에 테스트 케이스의 개수 T(1≤T≤20)가 주어진다. 두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 피자를 먹기 위해 모 인 학생 N(1≤N≤50)명이 주어진다. 출력 각 테스트 케이스에 대하여 한 줄에 하나씩 친구들이 균등하게 피자를 먹을 수 있도록 하는 최소의 커팅 횟 수를 출력한다. 예제입력 예제출력 3 2 5 10 1 5 5
  • 3. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 3 / 17 B. 피겨 스케이팅 시간제한 1초 피겨스케이팅 꿈나무인 나현이는 이번 동계올림픽에 출전했다. 나현이 는 이번 올림픽 금상을 목표로 하고 있기 때문에, 모든 참가자들 중에 가장 높은 점수를 얻기 위해 부단히 노력하였다. 피겨 스케이팅 종목은 1회전과 2회전으로 이루어져 있는데, 각 회마다 선수들은 펼친 무대에 대해서 기술점수와 예술점수를 부여 받는다. 1회 전에서는, 1번 선수부터 무대를 펼쳐 기술점수와 예술점수를 부여 받 고, 차례대로 2번선수, 3번선수 …… N번 선수가 무대를 펼쳐 각각 기 술점수와 예술점수를 얻는다. 반면에 2회전에서는, 1회전에서 기술점수 와 예술점수의 합이 낮은 선수부터 무대를 펼쳐서 기술점수와 예술점 수를 부여 받게 된다. 대회를 모두 끝마친 나현이는 문득 1위가 누구 인 지 궁금해졌다. N명의 참가자에 대한 1회전, 2회전의 기술점수와 예 술점수가 주어질 때, 이번 올림픽에서 1위를 한 선수의 점수를 구해보 자. 입력 첫째 줄에 테스트 케이스의 개수 T(1≤T≤100)가 주어진다. 두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 참가자의 수 N(1≤N ≤1,000)이 주어진다. 이어지는 N줄에 걸쳐서 1번 참가자부터 N번 참가자까지 각 참가자의 1회전 예술점 수와 기술점수가 공백으로 구분되어 주어진다. 다음 N줄에는 1회전의 기술점수와 예술점수의 합이 낮은 순 서대로 각 참가자의 2회전 예술점수와 기술점수가 공백으로 구분되어 주어진다. 각 예술점수와 기술점수는 0이상 1,000이하의 정수로 주어진다. 출력 각 테스트 케이스에 대해 한 줄에 하나씩 1위를 한 선수의 1회전과 2회전의 기술점수와 예술점수를 모두 합 한 결과를 출력한다. 1위를 한 선수가 여려 명일 수도 있다. 예제입력 예제출력 1 5 13 16 27 25 23 25 16 12 9 1 2 7 20 19 23 16 0 6 22 16 90
  • 4. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 4 / 17 C. 불량 컬러 사진 필터 시간제한 1초 사진 매니아인 단디는 필터라는 새로운 개념에 빠져들었다. 앤디 워홀의 팬이기도 했던 단디는 하나의 사진 을 여러 컬러로 바꾸어 보기로 하고 마릴린 먼로의 사진과 새로운 필터를 주문하였는데, 이 필터는 R->G- >B->R 순서로 색을 바꿔주는 새로운 개념의 필터였다. 허나 이 필터는 신제품이라 몇 가지 문제가 있었는데, 하나는 사진 크기만큼 충분한 크기의 필터를 판매하지 않는 다는 것 이었고, 필터에 가끔 잘못 만들어진 부 분이 있어 R->B->G->R 로 색이 바뀌는 부분이 있을 수 있다는 것이다. 또한 주문한 사진에는 나무로 된 틀이 있어, 필터의 일부분이 사진을 벗어날 수 없다. 과연 단디는 이 필터를 가지고 원하는 결과물을 만들어 낼 수 있을까? 입력 첫째 줄에 테스트 케이스의 수 T(1≤T≤10)가 주어진다. 두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에는 필터의 Height(1 ≤Height≤50), Width(1≤Width≤50), 사진의 Height(1≤Height≤200), Width(1≤Width≤200)가 공 백으로 구분되어 주어진다. 다음 줄에 필터의 Height, Width만큼 A(정상) 혹은 R(비정상) 데이터가 주어진 다. 그 이후에 원본 사진의 R, G, B 데이터가 Height, Width만큼, 그리고 목적 사진의 R, G, B 데이터가 Height, Width만큼 주어진다. **주의 필터에서의 R(비정상)과 사진에서의 R(색상)은 다른 의미라는 것을 주의하자. 출력 각 테스트 케이스에 대해 한 줄에 하나씩 필터를 사용해서 원본 사진으로 목적 사진을 만들 수 있으면 “YES” 아니면 “NO” 를 출력한다. 예제입력 예제출력 3 2 2 4 4 AA AR RRRR RRRR RRRR RRRR RRRR RRRR RRGG RRGB 3 2 6 5 AA AR RA RRRRR RRRRR RRRRR YES YES NO
  • 5. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 5 / 17 RRRRR RRRRR RRRRR GGRRR GBRRR BRRGR RBBBR RGGGR RRRRR 2 2 4 4 AA AR RRRR RRRR RRRR RRRR RRRR RRRR RRGG RRGG Hint 1. 첫 번째 예제의 경우 좌 하단에 한 번 필터를 적용 하면 결과 이미지를 만들어 낼 수 있다. Hint 2. 두 번째 예제의 경우 아래와 같이 필터를 총 4 번 적용하면 목적 사진을 만들어 낼 수 있다. Hint 3. 세 번째 예제의 결과는 만들어 낼 수 없다.
  • 6. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 6 / 17 D. 솔로와 솔로와 솔로의 연결고리 시간제한 1초 한양대학교에 다니고 있는 정무, 윤성이, 주홍이는 여자친구가 없다. 믿었던 다른 친구들도 하나 둘씩 여자친 구가 생겨 떠나갔고, 결국 셋만 남게 되었다. 얼마 전 여자친구가 생긴 민철이와 시비가 붙은 주홍이는 “이 게 여자친구도 없는 게 까불어!”라는 민철이의 말에 대꾸조차 못하고 고개를 떨구었다. 이를 본 정무와 윤성 이는 마음이 아파, 주홍이가 재미있어 할 만한 게임으로 주홍이를 위로 해주고자 한다! 곰곰이 고민하던 둘 은 “형! 세상은 둘이 아니라 셋이 사는 거에요!”라며 ‘솔로와 솔로와 솔로의 연결고리’ 라는 게임을 주홍이 에게 제안한다. 게임이 재미있어 보였던 세 명은 당장 대운동장으로 뛰쳐나가 게임을 해보기로 했다. 게임의 규칙은 다음과 같다(이게임은 솔로 세 명만 참가할 수 있도록 만들어 졌다) < 솔로와 솔로와 솔로의 연결고리 규칙> ① 솔로 세 명이 게임에 참가한다. 1번째 플레이어가 게임의 술래이다. 세 명이 순서대로 플레이를 하며, 라운드가 지나도 플레이 순서는 바뀌지 않는다. ② 1번째 플레이어(술래)는 출발점에서 아무 방향으로나 정확히 N걸음을 걸어가서 서있는다. N은 1번째 플레이어의 마음대로 결정한다. ③ 2번째로 플레이 하는 사람은 1번째 플레이어가 서있는 위치에서 출발하며, 1번째 플레이어가 걸 어온 길과 직각이 되도록 걸어가서 서있는다. 이때 2번째 플레이어는 1번째 플레이어의 걸음 수 보다 추가로 정확히 M발 더 걸어가야 한다. M은 2번째 플레이어의 마음대로 결정한다. ④ 3번째 플레이어는 2번째 플레이어가 도착한 위치에서, 2번째 플레이어의 걸음 수 보다 정확히 M발 더 걸어서 맨 처음 출발점으로 돌아가야 한다. 3번째 플레이어가 돌아갈 수 있으면 술래의 패배, 돌아갈 수 없다면 술래의 승리로 라운드가 끝이 난다. (이 때, 지나치거나 모자람 없이, 정 확히 원래 출발점에 도착한 경우를 돌아가는데 성공했다고 정의한다) ⑤ 2,3 번째 플레이어는 한 팀이며, 3번째 플레이어가 출발점에 도착할 수 있도록 해서, 술래를 이 기는 것이 2,3번째 플레이어의 목적이다. ⑥ 걸음 수는 항상 자연수이며, 솔로 세 명의 한 걸음은 모두 보폭이 동일하다. 오늘 게임은 윤성이가 술래를 맡도록 하여, 윤성, 정무, 주홍 순서대로 게임을 진행하기로 하였다. 그런데 막 상 게임을 해보자, 정무와 주홍이는 번번히 패배하기만 하였고, 안 그래도 우울한 주홍이는 더 우울해져 집 에 가려고 했다. 2번째 플레이어를 맡은 정무는 이 게임의 승패는 자신에게 달려있다는 것을 알았다! 윤성이 가 처음 걸어간 걸음 수 N이 주어졌을 때, 정무와 주홍이가 이길 수 있는 추가 걸음 수 M을 찾아주는 프로 그램을 만들어 가여운 솔로들을 도와주자! 입력 첫째 줄에 테스트케이스의 수 T(1≤T≤100)가 주어진다. 각 테스트 케이스 첫째 줄에, 각 줄에 윤성이가 걸어간 걸음의 수 N(0≤N≤100,000)이 주어진다. 출력 각 테스트케이스의 입력에 대해 한 줄에 하나씩 윤성이를 이길 수 있는 추가 걸음 수 M을 출력한다. 만약 윤성이를 이길 수 있는 방법이 없다면 -1을 출력 한다. 정답은 32-bit 정수형을 넘지 않는 범위이다. 예제입력 예제출력 2 6 8 2 -1 Hint. 첫 번째 테스트 케이스의 경우, 윤성이가 6발 걸어가게 되면, 규칙에 따라 정무가 8발, 주홍이가 10발 걸어서 원래 출발점으로 돌아오는 것이 가능하다. 이 때 추가 걸음 수 M은 2발.
  • 7. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 7 / 17 E. 이진딸기(Binary Strawberry) 시간제한 1초 이진딸기는 자신의 차례에 해당하는 4비트의 2진수 중 1이 들어가는 곳에만 딸기를 외쳐야 하는 게임이다. 2진수의 숫자는 (10진수로) 1부터 15까지 1씩 증가한 뒤 다시 1까지 감소하는 규칙을 반복한다. (1, 2, 3 … 15, 14, 13 … 2, 1, 2, 3 …) 예를 들어, 선 플레이어의 경우 10진수 1(2진수 0001)에 해당하는 “ 딸기 “를 외쳐야 하며, 선 플레이어로부터 진행방향으로 14차례 뒤인 주홍이는 10진수 15(2진수 1111)에 해당하는 “딸기 딸기 딸기 딸기 “를, 15차례 뒤인 우태는 10진수 14(2진수 1110)에 해당하는 “딸기 딸기 딸기 ”를 외쳐야 한다. 마지막 플레이어가 구호를 외친 후 다시 선 플레이어부터 다음 구호를 외친다. 즉 5명이 게임을 하는 경우 선 플레이어는 1, 6, 11, 14, 9, 4, ……에 해당하는 구호를, 선 플레이어로부터 진행방향으로 3명 떨어진 플레 이어는 4, 9, 14, 11,6, 1, ……를 외쳐야 한다. 이진딸기 게임을 잘 하지 못하는 주홍이는 자기 차례가 돌아올 때마다 번번이 정해진 구호를 외치지 못한다. 옆자리에 앉은 우태는 연좌제(옆 사람도 함께 벌주를 먹는 룰) 때문에 번번이 주홍이와 함께 벌주를 마신 탓 에, 다음 게임부터는 주홍이에게 미리 외쳐야 할 구호를 알려주기로 했다. 단, 모든 플레이어는 주홍이가 M 개의 구호를 외치는 동안 구호를 틀리지 않으며, 도중에 게임이 중단되는 경우는 없다. 입력 첫째 줄에는 테스트 케이스의 수 T(1≤T≤10)가 주어진다. 두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스 별로 첫째 줄에 게임 플레이어의 수 N(1≤N≤1,000), 주홍이가 선 플레이어로부터 진행 방향으로 떨어진 거리 K(0 ≤ 𝐾 < 𝑁), 주홍이가 차 례대로 외쳐야 할 구호의 개수 M (1 ≤ M ≤ 100) 이 공백으로 구분되어 입력된다. 출력 각 테스트 케이스에 대해 주홍이의 차례가 왔을 때 외쳐야 할 구호를 게임이 진행되는 순서에 따라 한 줄에 하나씩 M개를 출력한다. 는 m, 딸기는 S로 출력하되 공백은 허용하지 않는다. 예제입력 예제출력 1 5 3 4 mSmm SmmS SSSm SmSS
  • 8. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 8 / 17 F. 자신을 설명하는 수 시간제한 1초 어려서부터 수학에 큰 관심을 보였던 은빈이는 혼자서 수를 가지고 놀곤 했다. 하지만 많았던 관심에 비해 은빈이의 수학실력은 좋지 못하였고 때문에 친구인 수학 영재 지후에게 맨날 놀림을 당하기 일쑤였다. 어렸 을 때부터 놀림을 받아온 은빈이는 더 이상 참지 못하고 지후에게 제안을 한다. “내가 수학 퀴즈를 낼 테니까 네가 그 퀴즈를 못 풀면 더 이상 나를 놀리지마!! 하지만 지후는 이조차도 가소롭게 생각하였고 제안을 받아드려 주었다. 막상 제안은 했지만 은빈이의 수학 지식은 매우 부족했다. 지후는 수학 지식이 풍부했기 때문에 지후가 못 맞출 퀴즈를 내려면 지후가 모르는 새로운 내용이 필요했고 은빈이는 이 세상에 없는 새로운 수인 “자신을 설명하는 수”라는 것을 만들게 되었 다. 예를 들어, 61134447444의 자신을 설명하는 수는 6이 1개, 1이 2개, 3이 1개, 4가 3개, 7이 1개, 4가 3 개 있으므로 611231437143이다. 이러한 방식으로 611231437143의 자신을 설명하는 수를 구해보면 6112213111413171114131이 된다. 자신을 설명하는 수를 계속 구해보던 은빈이는 규칙을 발견했다. 어떤 수 N에 대해 자신을 설명하는 수를 계속 구해나갈 때 얻을 수 있는 각 수들의 자릿값(Digit, 각 자리의 숫자) 중에서 가장 큰 자릿값(Digit) M 을 구할 수 있다는 사실이다. 예를 들어, N이 892일 경우에는 M이 9가 된다. 왜냐하면 892의 자신을 설명 하는 수는 819121이고 819121의 자신을 설명하는 수는 811191112111이고 자신을 설명하는 수를 계속 구하더라도 9보다 큰 자릿값(Digit)는 나타날 수 없기 때문이다. (자릿값(Digit)는 0~9임을 상기하자!) 따라 서 N = 892일 때는 M = 9 이다. 은빈이는 위의 생각을 바탕으로 지후에게 N을 알려주고 M을 맞춰보라는 수학 퀴즈를 내고자 한다. 은빈이 는 문제를 만드는데 성공했지만 머리를 너무 써버린 탓에 문제의 답까지는 구하지 못했다. 은빈이를 대신해 문제의 답을 구해주고 은빈이가 지후에게 수학 퀴즈를 내서 지후를 기를 꺾을 수 있도록 도와주자. 입력 첫째 줄에는 테스트 케이스의 수 T(1≤T≤50)가 주어진다. 두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 N(1≤N≤109 )이 주어진다. 출력 각 테스트 케이스에 대해 한 줄에 하나씩 N에 대한 M을 출력한다. 예제입력 예제출력 3 987132 1 1122112211 9 3 3
  • 9. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 9 / 17 G. 조건부 최장 부분 수열 시간제한 1초 자연수들로 이루어진 무작위 순서의 수열이 주어 질 때 아래 조건들 가운데 하나라도 만족하는 부분수열 (Subsequence)들 중 가장 긴 부분수열(Longest Subsequence)의 길이를 출력하시오. (조건 1,2,3 중 하 나라도 만족하면 된다.) 조건 1: 증가하는 수열 예) 1, 3, 5, 6, 9, 13 조건 2: 감소하는 수열 예) 11, 8, 4, 3, 1 조건 3: 증가하다 감소하는 수열 (단, 증가에서 감소로 바뀌는 부분이 한번만 존재) 예) 1, 3, 4, 8, 5, 2 예를 들어 수열 {1, 5, 3, 4, 8, 7, 2, 6}가 주어지면 위 조건 중 하나라도 만족하는 가장 긴 부분수열은 {1, 3, 5, 8, 7, 2}, {1, 3, 4, 8, 7, 6} 두 개가 되므로 길이 7을 출력하면 된다. ※ 부분수열(Subsequence)이란 원래의 수열에서 순서는 유지한 채 수열을 이루는 항 중에 일부만 모아 만들어진 수열을 말한다. 입력 첫째 줄에 테스트 케이스의 수 T(1≤T≤100)가 입력된다. 두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에는 수열의 길이 N(2≤N≤1,000)이 주어진다. 테스트 케이스의 두 번째 줄에는 1부터 N까지의 자연수로 이루어진 길이 N 의 수열이 입력된다. 수열을 이루는 자연수들은 해당 수열 내에서 서로 중복되지 않는다.) 출력 각 테스트 케이스에 대해 한 줄에 하나씩 주어진 수열에 대해 위 설명에 해당하는 부분수열 가운데 가장 긴 부분수열의 길이를 출력한다. 예제입력 예제출력 3 5 1 2 5 3 4 3 3 2 1 8 1 5 3 4 8 7 2 6 4 3 6
  • 10. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 10 / 17 H. 아쿠아맨 시간제한 1초 박주람(25세, 남)군은 한 평생 수 없이 많은 어장관리를 당해왔다. 어김없이 지난 연애도 어장 안에서 헤엄 치다가 끝나고 난 후에 주람이는 자신이 평생 어장 안에서 헤엄치다가 끝날 운명이라는 것을 깨닫고 말았다. 이에 주람이는 모든 것을 포기하고 어장의 크기를 구하는 연구에 한 평생을 바치기로 한다. 그 결과 주람이 는 자신이 속한 어장을 수치화 해서 표현할 수 있게 되었고 자신이 속한 어장을 2차원 지도로 표현할 수 있 게 되었다. 너비 N, 높이가 100인 어장 안에는 N개의 기둥이 있고 이 기둥들 안에 담을 수 있는 최대 부피 가 어장의 크기가 된다. 주람이는 M만큼 인내할 수 있는데, M 보다 어장의 크기가 작거나 같게 되면 주람이는 평생 어장에서 헤엄치 게 되고 이 때 SWIM 을 출력한다. 어장의 크기가 주람이의 인내심 M 보다 크게 되면 주람이는 어장에서 헤엄치다 결국 차이게 된다. 이 때는 DUMPED를 출력한다. 단, 어장의 크기가 0일 경우에는 주람이가 아예 어장에 들어가지 못하므로 처참하게 실패하게 된다. 이 때는 FAIL을 출력한다. 예를 들어, 너비 N이 10이고 기둥의 높이가 각 3, 1, 6, 1, 7, 5, 0, 3, 0, 8인 어장의 크기는 27이다. 입력 첫째 줄에 테스트 케이스의 수 T(1≤T≤100)가 주어진다. 두 번째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트케이스는 첫째 줄에 너비 N(1≤N≤100) 과 주람이의 인내심 M(1≤M≤10,000)이 주어진다. 그 다음 줄에는 N개의 기둥의 높이가 주어진다. 기둥 의 높이는 0이상 100이하이다. 출력 각 테스트 케이스에 대해 한 줄에 하나씩 SWIM, DUMPED, FAIL 중 알맞은 것을 출력한다. 예제입력 예제출력 4 3 1 1 0 1 10 25 3 1 6 1 7 5 0 3 0 8 5 5 3 0 5 0 3 3 1 1 2 1 SWIM DUMPED DUMPED FAIL 뒷장에 이어서 힌트...
  • 11. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 11 / 17 Hint. 두 번째 예제는 다음과 같은 어장의 형태를 가지고 있으며, 어장의 크기는 위의 그림에서 점 모양이 채워진 부분의 크기로써, 2 + 5 + 2 + 7 + 4 + 7 = 27 이다. 이때, 주람이의 인내심 M은 25이므로 인내심 M보다 어장의 크기가 더 큰 상황이다. 따라서 “DUMPED”를 출력한다.
  • 12. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 12 / 17 I. 킹카의 고민 시간제한 1초 2014년 ‘퀸카의 고민’에서 패배한 준범이는 그 후 한 학기를 휴학 하며 실연의 아픔을 겪었다. 휴학을 하던 준범이는 극심한 스트레스 탓에 살이 찌기 시작 했고, 기분 전환도 할 겸 운동을 시작하여 3달 만에 30kg 감량에 성공했다! 인생사 새옹지마, 복학한 준범이는 다이어트로 잘생겨진 외모로 킹카 복학생으로 불리게 되었고, 급기야 같은 과의 지수와 지원이의 고백을 동시에 받게 되었다. 준범이는 작년의 아픔을 떠올리며, 일주일 간 보낸 메시지 수 따위로 사람을 판단하는 것은 어리석은 짓이라는 생각을 하게 되었고, 조금 고민 하다가 두 친구를 모두 사귀기로 마음 먹었다! 수학적으로 치밀하게 계획한 준범이는 이틀 동안 하루는 지수 를 하루는 지원이를 만나기로 계획했다. 모든 고민이 끝난 것처럼 보였지만, 준범이 앞에는 새로운 시련이 남아 있었다. 바로 두 친구와 데이트할 데 이트 코스를 직접 짜야 한다는 것이었다. 멀리 가기 귀찮은 준범이는 두 친구 모두 왕십리에서 데이트를 할 계획이었고, 지수와 갔던 가게에 지원이와 가게 되면, 양다리를 들킬 가능성이 있기 때문에 한 친구와 갔던 가게는 그 다음 친구와의 데이트에서는 배제하기로 하였다. 준범이가 짠 데이트 코스에 따르면 왕십리에 있 는 N개의 종류의 가게를 순서대로 방문할 예정이다. 같은 종류의 가게는 두 번 이상 방문하지 않는다. 각 데 이트 장소에 있는 한 종류의 가게는 각각 𝑎1, 𝑎2……𝑎𝑖…𝑎 𝑁 개가 존재 한다. 예를 들어, N=3이고 𝑎1 = 3, 𝑎2 = 5, 𝑎3 = 4 이라고 하면 데이트 코스에 있는 가게의 종류가 3개이고 각 각 종류 별로 가게가 3개, 5개, 4개 있는 것이다. 문제에서 설명한 조건을 지키면서 이틀 간의 데이트코스를 짜려고 할 때, 준범이가 짤 수 있는 데이트 코스의 수를 구해주자! 입력 첫째 줄에 테스트 케이스의 수 T(1 ≤ T ≤ 100)가 입력된다. 둘째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 준범이가 방문하려고 하 는 데이트 코스의 가게 종류의 수 N(0 ≤ N ≤ 10)이 주어지고, 둘째 줄에, 가게의 종류 별 개수를 나타내는 정수 𝑎𝑖(0 ≤ 𝑎𝑖 ≤ 9)가 N개 주어진다. 각 정수는 공백으로 구분된다.
  • 13. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 13 / 17 출력 각 테스트케이스에 대해 한 줄에 하나씩 문제에서 주어진 조건을 지키면서 이틀 간의 데이트코스를 짜려고 할 때, 짤 수 있는 데이트 코스의 경우의 수를 한 줄에 하나씩 출력한다. 예제입력 예제출력 2 2 3 4 3 2 2 2 72 8
  • 14. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 14 / 17 J. Noogler Junhee Time Limit: 1 second Ever since Junhee got a job at ‘google’, he made an interesting observation. ‘goog’ was the palindrome of his company name! A palindrom is a word, phrase, number, or other sequence of characters which reads the same backward or forward. For example, ‘madam’, ‘abba’, or ‘lol’ are the palindromes. Just as Junhee found out ‘goog’ from ‘google’, he wants to find out length of the longest substring which is palindrome from given string. 입력 Your program is to read from standard input. The input consists of T (1≤T≤30) test cases. Number of test cases T is given in the first line of the input. Each test cases contains one string, and its maximum length is no longer than 200,000. 출력 Your program is to write to standard output. Print exactly one line for each test case. The line should contain an integer representing the maximum length of the longest palindrome substring. Sample Input Sample Output 2 google heymadamimadamthanks 4 11 Hint. For the first case, ‘goog’ is the longest palindrome substring. For the latter case, ‘madamimadam’ is the longest palindrome substring.
  • 15. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 15 / 17 K. Hexagon 시간제한 1초 창수는 매우 특별한 육각형모양의 초콜릿을 생일선물로 받았다. 창수는 초콜릿을 관찰한 결과 두 가지 특징 을 알아냈다. 특징 1. 이 육각형퍼즐의 모서리에서 이루는 각이 120° 를 이룬다. 특징 2. 이 육각형 퍼즐은 각 𝑖번째 변이 𝑎𝑖cm 을 이룬다. 창수는 특이한 식습관이 있는데 초콜릿을 먹을 때만큼은 초콜릿을 정확히 각 변이 1cm인 정삼각형모양으로 잘라서 먹으려고 한다는 것이다. 창수는 몇 개의 정삼각형모양의 초콜릿을 먹을 수 있는지 궁금해졌다. 창수 가 최대 몇 개의 정삼각형모양의 초콜릿을 먹을 수 있는지 알려주자! 입력 첫째 줄에 테스트 케이스의 수 T(1≤T≤10,000)가 주어진다. 둘째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 각 육각형의 각 변의 길 이를 의미하는 여섯 개의 양의 정수 𝑎1, 𝑎2, 𝑎3, 𝑎4, 𝑎5, 𝑎6 이 입력으로 주어진다. i가 1이상 5이하일때, 𝑎𝑖 는 𝑎𝑖+1 과 인접해 있으며 𝑎6은 𝑎1과 인접해 있다. 각 변의 길이는 100이하의 자연수이다. 각 변의 길 이로 위의 2가지 성질을 만족하는 육각형이 존재함은 보장된다. 출력 각 테스트 데이터에 대해서 한 줄에 하나씩 창수가 먹을 수 있는 최대한의 정삼각형모양의 초콜릿 개수를 출 력한다. 예제입력 예제출력 2 1 1 1 1 1 1 1 2 1 2 1 2 6 13
  • 16. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 16 / 17 L. Blue crab 시간제한 1초 전통적인 체스 게임은 폰, 룩, 비숍, 나이트, 킹, 퀸 6개의 말로 진행된 다. 체스 게임프로 선수인 세일이는 이번 국제대회에도 참가하기로 하 였는데, 이번 국제 대회부터 새로운 말이 추가되어 게임이 진행된다고 한다. 새로운 말의 이름은 crab이다. crab은 체스판 내에서 좌, 우로 1 칸 또는 2칸 이동할 수 있다. 세일이는 체스 대회를 준비하기 위한 연습을 하던 도중, 문득 세로 H 칸, 가로 W칸의 체스판에 K개의 crab을 놓으면서, 각각의 crab이 서 로를 공격할 수 없는 위치에만 놓으려고 한다. 각각의 crab이 구분되지 않는다고 할 때, K개의 crab을 놓는 경우의 수를 구해보자. 입력 첫째 줄에 테스트 케이스의 수 T(1≤T≤100)가 주어진다. 둘째 줄부터 테스트 케이스에 대한 입력이 주어진다. 각 테스트 케이스의 첫째 줄에 세 개의 정수 H(1≤H≤50), W(1≤W≤50), K(1≤K≤100) 가 주어진다. H는 체스판의 세로 크기, W는 체스판의 가로 크기, K는 놓아야 할 crab의 개수를 의미한다. 출력 각 테스트 케이스에 대해 한 줄에 하나씩 가능한 방법의 수를 1,000,000,007 로 나눈 나머지를 출력한다. 예제입력 예제출력 3 3 3 1 1 3 2 2 3 2 9 0 9
  • 17. 2015 제2회 한양대학교 프로그래밍 경시대회(Advanced Division) 페이지 17 / 17 M. Rider Byeongkyu Time Limit: 1 second Byeongkyu is born athlete except he doesn’t know how to ride bicycle. After taking the year off from the University, he learned how to ride bicycle and it fascinated him. Now, he is always with his bicycle and does not want to stop riding it. From given starting point to ending point, let’s find out the longest time that Byeongkyu can ride his joyfulness. 입력 Your program is to read from standard input. The input consists of T test cases. The number of test cases 'is given in the first line of the input. (T is no larger than 20.) Each test case starts with a line containing four integers N, M, S, E. N denotes the number of vertices and it is no larger than 500. M denotes the number of edges. S and E denotes starting point and ending point respectively. For next M lines are consists of A, B, and V which denotes it takes time V to reach from A to B. (Be careful it’s not vice versa.) 출력 Your program is to write to standard output. Print exactly one line for each test case. The line should contain an integer representing the maximum number of the time such that Byeongkyu can ride his bicycle. Print -1 if he can ride his bicycle infinitely. Sample Input Sample Output 2 3 3 1 2 1 2 5 1 3 2 3 2 4 4 5 1 3 1 2 3 2 3 4 1 4 2 4 2 2 3 4 3 6 -1 Hint. For the first case, path 1-3-2 takes time 6 and for the second case he can ride infinitely as 1-2-3-4-2-3-4 ...