https://www.acmicpc.net/problem/6064
그냥 브루트포스로 구현하면 최대 경우의 수가 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 |
댓글