흠...하는게 없어서 한문제 풀어봤다.

처음에는 배열을 사용할려고 했지만 배열크기가 너무 커서 에러가떳다.

그래서 배열 안쓰고 그냥 숫자놀이했다.

처음에는 시간을 받고 while(t--)로 풀었는데 시간초가 많이 커질경우 시간초과가 떳다.

그래서 시간을 2*w랑 2*h로 나눠서 각각 pt, qt를 만들어줬다.

그랬더니 시간초과 극---벅!

암튼 로직은 굉장히 단순하다. bool변수를 선언해줘서 p랑 q가 플러스방향으로 갈지 마이너스 방향으로 갈지 결정해준다.

흠...언제쯤 빡고수될까? 그래프 막 그리고? 어? 구글 잡으러 간다;;;

 

#include <iostream>

using namespace std;



int main()
{
	int w, h,p,q,t;
	cin >> w >> h;
	cin >> p >> q;
	cin >> t;
	bool pb = true, qb = true;
	int pt = t % (2 * w);
	int qt = t % (2 * h);

	while (pt--) {
		if (p == w) {
			pb = false;
		}
		else if(p==0) {
			pb = true;
		}
		if (pb)
			p++;
		else
			p--;
	}
	while (qt--) {
		if (q == h) {
			qb = false;
		}
		else if (q == 0) {
			qb = true;
		}
		if (qb)
			q++;
		else
			q--;
	}
	cout << p << " " << q;
}

+ Recent posts