Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define TASK "ADVERT"
- #define FAST ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
- #define READFILE freopen(TASK".INP","r",stdin)
- #define WRITEFILE freopen(TASK".OUT","w",stdout)
- #define For(i,a,b) for(int i=a;i<=b;i++)
- #define Rep(i,a,b) for(int i=a;i>=b;i--)
- #define pb push_back
- #define ENDL '\n'
- #define debug(x) cout<<#x<<" = "<<x<<ENDL
- #define fi first
- #define se second
- #define ever (;true;)
- #define all(x) x.begin(),x.end()
- #define sz(a) ((int)(a).size())
- #define ms(a,x) memset(a,x,sizeof(a))
- #define int long long
- using namespace std;
- typedef vector <int> vi;
- typedef pair <int,int> ii;
- typedef vector <ii> vpi;
- typedef pair <int,ii> iii;
- const int N = 100100;
- const int oo=0x3f;
- const int mod=1e9+7;
- const int dx[]={0,1,0,-1,0};
- const double ep=1e-4;
- int x,y,n,b[N],a[N];
- bool ok(double k){
- int w=x/k,h=y/k;
- int sumw=0;
- int sumh=0;
- if (a[1]>w) return 0;
- sumw=a[1];
- sumh=b[1];
- For(i,2,n){
- if (sumw+a[i]>w || b[i]!=b[i-1]){
- if (sumh+b[i]>h) return 0;
- sumw=a[i];
- sumh+=b[i];
- } else sumw+=a[i];
- }
- }
- void proc(){
- double l=0,r=1000000000;
- while (abs(r-l)>ep){
- double m=(l+r)/2;
- if (ok(m)) l=m;
- else r=m;
- }
- cout << setprecision(4) << fixed << l;
- }
- void init(){
- FAST;
- #ifndef ONLINE_JUDGE
- READFILE;
- WRITEFILE;
- #endif
- cin >> n >> x >> y;
- For(i,1,n) cin >> a[i] >> b[i];
- }
- signed main()
- {
- init();
- proc();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement