ARCTIC 오답 관련 질문 sky714 안녕하세요 ALGOSPOT에 어제 가입했습니다. 테스트 문제에 도전 중인데 오답이라고 뜨네요.. 아래는 소스 코드이고 소수점 3자리에서 반올림하기 위해 그냥 printf("%.2f\n", output); 이런 방식으로 처리했습니다. 혹시 몰라서 printf("%.2f", output); 과 같이 줄 바꿈 문자 없이도 해 보았는데 결과는 역시나 오답이네요... 처음 도전하다 보니 도대체 어디가 오류인지 감을 못잡겠습니다. 도움 좀 부탁드립니다. ^^ #include <stdio.h> #include <iostream> #include <math.h> #include <vector> using namespace std; typedef struct _PointF { float x, y; } PointF; int main(void) { vector<float> output; int c = 0; cin >> c; for(int i=0; i<c; i++) { vector<PointF> posList; int baseNum = 0; cin >> baseNum; for(int j=0; j<baseNum; j++) { PointF basePoint = { 0, 0 }; cin >> basePoint.x >> basePoint.y; posList.push_back(basePoint); } float distance = 0; for(int j=0; j<baseNum-1; j++) { float nearestBase = 10000; for(int k=j+1; k<baseNum; k++) { float temp = sqrtf((posList[j].x-posList[k].x)*(posList[j].x-posList[k].x)+(posList[j].y-posList[k].y)*(posList[j].y-posList[k].y)); if(temp < nearestBase) { nearestBase = temp; } } if(distance < nearestBase) { distance = nearestBase; } } output.push_back(distance); } for(int i=0; i<c; i++) printf("%.2f\n", output[i]); return 0; } 12년 전
2개의 댓글이 있습니다. Being 문제를 해결하는 방법이 틀리신 것으로 보입니다. 올려 주신 코드는 각 기지에 대해 가장 가까운 기지와의 거리들 중 최대값을 구하는 코드인데, 예를 들어 네 개의 기지가 있고 (0, 0), (0, 1), (1000, 0), (1000, 1) 네 개의 기지가 있다면 네 개의 기지 모두 가장 가까운 기지와의 거리는 1.0이지만 거리가 1000 떨어진 두 기지 사이를 연결할 방법은 없습니다. 12년 전 link sky714 아, 가장 중요한 것을 생각하지 못하고 계속 뭐가 잘못됐지 하는 생각만 했네요... 정말 감사합니다. ^^ 12년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
sky714
안녕하세요 ALGOSPOT에 어제 가입했습니다.
테스트 문제에 도전 중인데 오답이라고 뜨네요..
아래는 소스 코드이고 소수점 3자리에서 반올림하기 위해 그냥 printf("%.2f\n", output); 이런 방식으로 처리했습니다.
혹시 몰라서 printf("%.2f", output); 과 같이 줄 바꿈 문자
없이도 해 보았는데 결과는 역시나 오답이네요...
처음 도전하다 보니 도대체 어디가 오류인지 감을 못잡겠습니다.
도움 좀 부탁드립니다. ^^
12년 전