Advertisement
Guest User

Untitled

a guest
Nov 1st, 2016
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define lli long long int
  4.  
  5. int x[1005] , y[1005];
  6.  
  7. int main()
  8. {
  9.     int T; cin>>T;
  10.     while (  T-- )
  11.     {
  12.         int n; lli m;
  13.         cin>>n>>m;
  14.         for ( int i=0 ; i<n ; i++ )
  15.             cin>>y[i]>>x[i];
  16.        
  17.         int ans = 0;       
  18.         {
  19.             lli S = m; //min( 1000 , m );
  20.             vector< pair<int,int> > v;
  21.             for ( int i=0 ; i<n ; i++ ) v.push_back( make_pair( y[i] , x[i] ) );
  22.             sort( v.begin() , v.end() );
  23.            
  24.             for ( lli h=1 ; h<=S ; h++ )
  25.             {
  26.                 lli w = m / h;
  27.                
  28.                 multiset<int> st;
  29.                 for ( int i1=0,i2=0 ; i2<n ; i2++ )
  30.                 {
  31.                     st.insert( v[i2].second );
  32.                     while ( (v[i2].first - v[i1].first) > h )
  33.                     {
  34.                         st.erase( st.find( v[i1].second ) );
  35.                         i1++;
  36.                     }
  37.                    
  38.                     int cnt = 0;
  39.                     for ( multiset<int>::iterator si=st.begin(),sj=st.begin() ; sj!=st.end() ; sj++ )
  40.                     {
  41.                         cnt++;
  42.                         while ( (*sj - *si) > w ) cnt-- , si++;
  43.                         ans = max( ans , cnt );
  44.                     }
  45.                 }
  46.             }
  47.         }
  48.        
  49.         cout<<ans<<"\n";
  50.     }
  51.    
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement