$O(f)$
이동 가능한 위치 중 목표에 가깝도록 이동한다. f번 이상 이동해도 목표에 도착하지 못한다면 불가능한 경우이다.
#include<cstdio> int f, s, g, u, d; int main() { scanf("%d %d %d %d %d", &f, &s, &g, &u, &d); for (int r = 0; r < f && 0 < s&&s <= f; r++) { if (s == g) { printf("%d", r); return 0; } s -= s > g&&s > d || s<g&&s + u>f ? d : -u; } puts("use the stairs"); return 0; }
댓글 없음 :
댓글 쓰기