#include #define int long long #define vec vector #define double long double #define forn(i, n) for(int i = 0;i>(a)[i] #define write(a) forn(i, (a).size()) cout<<(a)[i] << " "; cout << "\n"; using namespace std; typedef pair pii; int mod = 1e9+7; bool coll(pii a, pii b){ int r = a.x*b.y-a.y*b.x; if(r == 0) return true; return false; } int g(int a, int b){ if(a == 0) return 1; if(b == 0) return 1; return __gcd(abs(a), abs(b)); } void solve(){ int n,p; cin>>n>>p; vec v(n); forn(i,n){ cin>>v[i].x>>v[i].y; v[i].x *= 2; v[i].y *= 2; } int min_r = ceil((double)n/100*p); map, int> cnt; for(int i=0;i inter = {NULL, NULL}; pii norm = v1; int a = norm.first; int b = norm.second; int c = (-1)*(a * cent.x + b * cent.y); int del = g(a, g(b, c)); a/=del; b/=del; c/=del; // cout << a << " " << b << " " << c << "\n"; cnt[{a, {b, c}}]+=2; if(cnt[{a, {b, c}}] >= min_r){ cout << "YES\n"; return; } // if(v1.x != 0){ // inter.y = cent.y - norm.y * (cent.x / norm.x);//Oy // cnty.push_back(inter.y); // cnty[inter.y]++; // } // if(v1.y == 0){ // inter.x = cent.x - norm.x * (cent.y / norm.y);//Oy // cntx[inter.x]++; // cntx.push_back(inter.x); // } } } cout << "NO\n"; return; // sort(all(cntx)); // int i = 0; // int gl = 1; // while(i < cntx.size()){ // int ans = 1; // if(i + 1 < cntx.size() && abs(cntx[i+1]-cntx[i]) <0.00001){ // ans++; // i++; // } // // gl = max(gl, ans); // i++; // } // // sort(all(cnty)); // i = 0; // while(i < cnty.size()){ // int ans = 1; // if(i + 1 < cnty.size() && abs(cnty[i+1]-cnty[i]) <= 0.00001){ // ans++; // i++; // } // gl = max(gl, ans); // i++; // } // // cout << gl << "\n"; // // // // if(gl >= min_r){ // cout << "YES\n"; // return; // } // // cout << "NO\n"; } signed main() { int tt = 1; while(tt--){ solve(); } }