Advertisement
MinhNGUYEN2k4

Untitled

Sep 14th, 2021
970
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define TASK "ADVERT"
  3. #define FAST ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
  4. #define READFILE freopen(TASK".INP","r",stdin)
  5. #define WRITEFILE freopen(TASK".OUT","w",stdout)
  6. #define For(i,a,b) for(int i=a;i<=b;i++)
  7. #define Rep(i,a,b) for(int i=a;i>=b;i--)
  8. #define pb push_back
  9. #define ENDL '\n'
  10. #define debug(x) cout<<#x<<" = "<<x<<ENDL
  11. #define fi first
  12. #define se second
  13. #define ever (;true;)
  14. #define all(x) x.begin(),x.end()
  15. #define sz(a) ((int)(a).size())
  16. #define ms(a,x) memset(a,x,sizeof(a))
  17. #define int long long
  18.  
  19. using namespace std;
  20. typedef vector <int> vi;
  21. typedef pair <int,int> ii;
  22. typedef vector <ii> vpi;
  23. typedef pair <int,ii> iii;
  24. const int N = 100100;
  25. const int oo=0x3f;
  26. const int mod=1e9+7;
  27. const int dx[]={0,1,0,-1,0};
  28. const double ep=1e-4;
  29. int x,y,n,b[N],a[N];
  30. bool ok(double k){
  31.     int w=x/k,h=y/k;
  32.     int sumw=0;
  33.     int sumh=0;
  34.     if (a[1]>w) return 0;
  35.     sumw=a[1];
  36.     sumh=b[1];
  37.     For(i,2,n){
  38.         if (sumw+a[i]>w || b[i]!=b[i-1]){
  39.             if (sumh+b[i]>h) return 0;
  40.             sumw=a[i];
  41.             sumh+=b[i];
  42.         } else sumw+=a[i];
  43.     }
  44. }
  45. void proc(){
  46.     double l=0,r=1000000000;
  47.     while (abs(r-l)>ep){
  48.         double m=(l+r)/2;
  49.         if (ok(m)) l=m;
  50.         else r=m;
  51.     }
  52.     cout << setprecision(4) << fixed << l;
  53. }
  54. void init(){
  55.   FAST;
  56.   #ifndef ONLINE_JUDGE
  57.     READFILE;
  58.     WRITEFILE;
  59.   #endif
  60.   cin >> n >> x >> y;
  61.   For(i,1,n) cin >> a[i] >> b[i];
  62. }
  63. signed main()
  64. {
  65.   init();
  66.   proc();
  67.   return 0;
  68. }
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement