Computer Science/Algorithm Problem

백준] 10158 - 개미(KOI 2014 지역본선)

TwinParadox 2018. 2. 21. 20:51
728x90

시간 제한 : 1초

메모리 제한 : 256MB




입력

첫줄에는 w와 h가 공백을 사이에 두고 주어진다. 그 다음 줄에는 초기 위치의 좌표값 p와 q가 공백을 사이에 두고 주어진다. 3번째 줄에는 개미가 움직일 시간 t가 주어진다. 




출력

출력은 t 시간 후에 개미의 위치 좌표 (x,y)의 값 x와 y를 공백을 사이에 두고 출력한다.




소스코드

#include <iostream>
using namespace std;
int main(void)
{
	int w, h, curx, cury, dx, dy, t;
	cin >> w >> h >> curx >> cury >> t;
	dx = dy = 1;
	for (int i = 0; i < t; i++)
	{
		if (curx + dx > w || curx + dx < 0)
			dx = -dx;
		if (cury + dy > h || cury + dy < 0)
			dy = -dy;
		curx += dx;
		cury += dy;
	}
	cout << curx << ' ' << cury;
}




Tip

단순한 시뮬레이션 문제다. 이런 류의 문제를 많이 풀어본 사람이라면 바로 풀 수 있을 것이다. 좀 더 빠른 속도로 풀려면 필요 없는 연산 작업(충돌이 없는 이동)을 없애는 것이 좋다.

728x90