#include #include #include #include using namespace std ; const double PI = 3.14159265358979 ; double fixang(double a) { if (a < 0) a += PI ; if (a > PI) a -= PI ; return a ; } int main(int argc, char *argv[]) { int n ; cin >> n ; vector x(n), y(n) ; for (int i=0; i> x[i] >> y[i] ; vector> sortme ; vector> next ; vector> angs ; for (int i=0; i v(n) ; vector ang(n) ; v[sortme[sortme.size()-1].second] = sortme[0].second ; ang[sortme[sortme.size()-1].second] = fixang(sortme[0].first - sortme[sortme.size()-1].first) ; for (int j=0; j+1<(int)sortme.size(); j++) { v[sortme[j].second] = sortme[j+1].second ; ang[sortme[j].second] = fixang(sortme[j+1].first - sortme[j].first) ; } next.push_back(v) ; angs.push_back(ang) ; } vector > seen ; for (int i=0; i(n)) ; int r = 0 ; for (int i=0; i cnts(n) ; int ii = i ; int jj = j ; double totspin = 0 ; while (1) { cnts[ii]++ ; seen[ii][jj] = 1 ; int kk = next[ii][jj] ; totspin += angs[ii][jj] ; jj = ii ; ii = kk ; if (ii == i && jj == j && totspin >= 1.5 * PI) break ; } for (auto v : cnts) r = max(r, v) ; } cout << r << endl ; }