BRAVEDUCK 소스 검토 부탁드려요 jjangguboy //STL을 사용해서 짰는데요 //디버깅통해서 진행상황보면 잘 되는거 같은데 오답이 뜨네요 #include<iostream> #include<queue> using namespace std; typedef struct point{ int x, y, visit; }point; int pow(int a) { return a*a; } int chk(int x1, int x2, int y1, int y2) { return (pow(x2 - x1) + pow(y2 - y1)); } int main() { queue<pair<int, int>> q; int jump, stNum, n, pass, x, y; point start, end, st[100]; cin >> n; for (int j = 0; j < n; j++) // 입력 { pass = false; cin >> jump >> start.x >> start.y >> end.x >> end.y >> stNum; q.push(make_pair(start.x, start.y)); // 시작점 큐에 넣기 x = start.x; y = start.y; for (int i = 0; i < stNum; i++) // 돌 개수 만큼 반복문 cin >> st[i].x >> st[i].y; while (!q.empty() && !pass){ for (int i = 0; i < stNum; i++) { if (pow(jump) >= chk(x, end.x, y, end.y)){ // 돌 좌표에서 도착지점까지 도착할 수 있을 때 종료 pass = true; break; } else if (pow(jump) >= chk(x, st[i].x, y, st[i].y) && st[i].visit != 1) { q.push(make_pair(st[i].x, st[i].y)); st[i].visit = 1; } } q.pop(); if (!q.empty()){ auto p = q.front(); x = p.first; y = p.second; } } if (pass) cout << "YES" << endl; else cout << "NO" << endl; } return 0; } ~~~ (빈 줄) 10년 전
1개의 댓글이 있습니다. seico75 여러 예제를 한꺼번에 넣고도 돌려보셨나요? st[i].visit 초기화를 안해줘서 한번은 돌아도 여러번 돌리면 문제가 있을 것으로 보입니다. 그리고, "// 돌 좌표에서 도착지점까지 도착할 수 있을 때 종료" 이 부분이 루프 안에 있어야 하나요? 10년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
jjangguboy
//STL을 사용해서 짰는데요
//디버깅통해서 진행상황보면 잘 되는거 같은데 오답이 뜨네요
10년 전