#include #include #include using namespace std; double GetAnswer(int N,int *xs,int *ys); int main(void){ int N; double ans; int *xs,*ys; char buf[20]; while(true){ cin >> N; if(N==0) break; xs = new int[N]; ys = new int[N]; for(int i=0;i> xs[i]; cin >> ys[i]; } ans = GetAnswer(N,xs,ys); delete[] xs; delete[] ys; sprintf(buf,"%.1f",ans); cout << buf<0 ; left--){ // calculate diff, angle for(int i=0;i0 ? hpi : -hpi); }else{ angle[i] = atan2(diffy,diffx); } } // find next flag diff_angle = -1; // less than 0; for(int i=0;i4*hpi) tmp-= 4*hpi; if(diff_angle < tmp || (diff_angle==tmp && diff[i] < diff[trg_flag])){ diff_angle = tmp; trg_flag = i; } } ans += diff[trg_flag]; visited[trg_flag] = true; nowx = xs[trg_flag]; nowy = ys[trg_flag]; now_angle = angle[trg_flag]; } delete[] visited; delete[] angle; delete[] diff; return ans; }