Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 29th, 2012  |  syntax: C++  |  size: 1.19 KB  |  hits: 17  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /**
  2.     LANG    : C++
  3.     AUTHOR  : bunkung
  4.     TASK    : hiring
  5. */
  6. #include<cstdio>
  7. #include<cstdlib>
  8. #include<cstring>
  9. #include<cmath>
  10. #include<iostream>
  11. #include<algorithm>
  12. #include<vector>
  13. #include<queue>
  14. #include<stack>
  15. #include<set>
  16. #include<map>
  17. #include<string>
  18. #include<utility>
  19. using namespace std;
  20.  
  21.  
  22. #define mod
  23. #define inf
  24. #define PAUSE system("pause")
  25. #define S scanf
  26. #define P printf
  27. #define upper_bound high=mid-1
  28. #define lower_bound low=mid+1
  29. #define MAXN 2010
  30.  
  31. struct bun
  32. {
  33.     int mo,q;
  34.     bool operator < ( const bun & T ) const
  35.     {
  36.         return mo/1.0/q > T.mo /1.0/ T.q;
  37.     }
  38. }worker[500010];
  39.  
  40. long long qsum[500010];
  41.  
  42. int main()
  43. {
  44.     int m,n,i,j,k,mx=0;
  45.     long long money,sum=0;
  46.     S("%d%lld",&n,&money);
  47.     for(i=1;i<=n;i++)   S("%d%d",&worker[i].mo,&worker[i].q);
  48.     sort ( worker + 1 , worker + 1 + n );
  49.     for( i=1 ; i<=n ; i++ ) qsum[i] = qsum[i-1] + worker[i].q;
  50.     for( i=1 ; i<=n ; i++ )
  51.     {
  52.         for(j = i + mx   ; j <=n ;j++ )
  53.         {
  54.             if( double(( qsum[j] - qsum[i-1]) / 1.0/ worker[i].q * worker[i].mo) > money )
  55.                 break;
  56.         }
  57.         mx = j - i ;
  58.     }
  59.     P("%d",mx);
  60. }