https://www.acmicpc.net/problem/10158
import java.io.*;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//격자
StringTokenizer st = new StringTokenizer(br.readLine());
//가로 세로
int w = Integer.parseInt(st.nextToken());
int h = Integer.parseInt(st.nextToken());
//개미
st = new StringTokenizer(br.readLine());
// 가로 세로
int p = Integer.parseInt(st.nextToken());
int q = Integer.parseInt(st.nextToken());
//시간
int t = Integer.parseInt(br.readLine());
//짝수번째면 그냥 출력 홀수번째면 역방향이므로, 격자의 길이에서 이동한 만큼 제해준다.
if(((p+t)/w)%2 == 0){
p = (p+t)%w;
}else{
p = w-(p+t)%w;
}
if(((q+t)/h%2)==0){
q = (q+t)%h;
}else{
q = h-(q+t)%h;
}
bw.write(p+" "+q);
bw.flush();
bw.close();
br.close();
}
}
음.. 처음에는 제자리로 오는 위치에서 시작하게 시간을 조절 해 주었는데, 0.15초로 풀기엔 너무 짧앗고 O(1)로 풀수있는 방법이 존재하였다.
좌우, 상하로만 반복운동한다는것에 중점을 두고 풀면 된다.