본문 바로가기
Problem Solving/BOJ

[Python]6064. 카잉 달력

by 부르르 2019. 4. 9.

https://www.acmicpc.net/problem/6064

 

6064번: 카잉 달력

문제 최근에 ICPC 탐사대는 남아메리카의 잉카 제국이 놀라운 문명을 지닌 카잉 제국을 토대로 하여 세워졌다는 사실을 발견했다. 카잉 제국의 백성들은 특이한 달력을 사용한 것으로 알려져 있다. 그들은 M과 N보다 작거나 같은 두 개의 자연수 x, y를 가지고 각 년도를 와 같은 형식으로 표현하였다. 그들은 이 세상의 시초에 해당하는 첫 번째 해를 <1:1>로 표현하고, 두 번째 해를 <2:2>로 표현하였다. 의 다음 해를 표현한 것을 이라고 하자. 만일

www.acmicpc.net


그냥 브루트포스로 구현하면 최대 경우의 수가 40000^2 으로 제한시간내에 통과할 수 없다.

규칙을 찾아서 연산해서 값을 구해야 한다.

전체 경우의 수를 먼저 작성하고 index, x, y를 각각 -1 해보면 index % N 이 규칙을 이루는 것을 알 수 있다. 

1
2
3
4
5
6
7
8
9
10
11
12
for _ in range(int(input())):
    m, n, x, y = map(int, input().split())
    x -= 1
    y -= 1
    k = x
    while k < n*m:
        if k % n == y:
            print(k+1)
            break
        k += m
    if k % n != y:
        print(-1)
cs

 

728x90
반응형

'Problem Solving > BOJ' 카테고리의 다른 글

[Python]16235. 나무 재테크  (0) 2019.04.10
[Python]16236. 아기 상어  (0) 2019.04.09
[Python]17136. 색종이 붙이기  (0) 2019.04.08
[Python]1107. 리모컨  (0) 2019.04.08
[Python]2225. 합분해  (0) 2019.04.08

댓글