#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //UWAGA - w czasie kompilacji musi byc znany rozmiar wektora - nie mozna go zmienic #include #include //do setprecision #include #include using namespace std; #define FOR(i,b,e) for(int i=(b);i<(e);++i) #define FORQ(i,b,e) for(int i=(b);i<=(e);++i) #define FORD(i,b,e) for(int i=(b)-1;i>=(e);--i) #define REP(x, n) for(int x = 0; x < (n); ++x) #define ST first #define ND second #define PB push_back #define MP make_pair #define LL long long #define ULL unsigned LL #define LD long double const double pi = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342; int nwd( int a, int b ) { return b ? nwd( b, a%b ) : a; } int main() { int n; scanf( "%d", &n ); vector < pair < int, int > > Vx, Vy; REP( i, n ) { int x, y; scanf( "%d%d", &x, &y ); Vx.push_back( MP( x, y ) ); Vy.push_back( MP( y, x ) ); } sort( Vx.begin(), Vx.end() ); bool ok = 1; FOR( i, 1, n ) { if (Vx[i].first != Vx[0].first) { ok = 0; break; } } if (ok) { printf( "YES\n" ); return 0; } ok = 1; sort( Vy.begin(), Vy.end() ); FOR( i, 1, n ) { if (Vy[i].first != Vy[0].first) { ok = 0; break; } } if (ok) { printf( "YES\n" ); return 0; } /* REP( i, n ) { map < pair < int, int>, int > M; REP( j, n ) { if (i != j) { int dx = V[j].first - V[i].first, dy = V[j].second - V[i].second; int d = nwd( abs( dx ), abs( dy ) ); M[MP( dx / d, dy / d )]++; } } if (M.size() == 1) { printf( "YES\n" ); return 0; } }*/ printf( "NO\n" ); return 0; }