Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define lli long long int
- int x[1005] , y[1005];
- int main()
- {
- int T; cin>>T;
- while ( T-- )
- {
- int n; lli m;
- cin>>n>>m;
- for ( int i=0 ; i<n ; i++ )
- cin>>y[i]>>x[i];
- int ans = 0;
- {
- lli S = m; //min( 1000 , m );
- vector< pair<int,int> > v;
- for ( int i=0 ; i<n ; i++ ) v.push_back( make_pair( y[i] , x[i] ) );
- sort( v.begin() , v.end() );
- for ( lli h=1 ; h<=S ; h++ )
- {
- lli w = m / h;
- multiset<int> st;
- for ( int i1=0,i2=0 ; i2<n ; i2++ )
- {
- st.insert( v[i2].second );
- while ( (v[i2].first - v[i1].first) > h )
- {
- st.erase( st.find( v[i1].second ) );
- i1++;
- }
- int cnt = 0;
- for ( multiset<int>::iterator si=st.begin(),sj=st.begin() ; sj!=st.end() ; sj++ )
- {
- cnt++;
- while ( (*sj - *si) > w ) cnt-- , si++;
- ans = max( ans , cnt );
- }
- }
- }
- }
- cout<<ans<<"\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement