Submission #815141

#TimeUsernameProblemLanguageResultExecution timeMemory
815141MohamedAhmed04Self Study (JOI22_ho_t2)C++14
62 / 100
145 ms9112 KiB
#include <bits/stdc++.h> using namespace std ; const int MAX = 3e5 + 10 ; int a[MAX] , b[MAX] ; int n , m ; bool check(long long x) { long long cnt = 0 ; for(int i = 0 ; i < n ; ++i) { if(1ll * m * a[i] >= x) cnt += m - (x + a[i] - 1ll) / a[i] ; else cnt -= (x - 1ll * m * a[i] + b[i] - 1ll) / b[i] ; cnt = max(cnt , (long long)(-1ll * 1e18)) ; } return (cnt >= 0) ; } int main() { ios_base::sync_with_stdio(0) ; cin.tie(0) ; cin>>n>>m ; for(int i = 0 ; i < n ; ++i) cin>>a[i] ; for(int i = 0 ; i < n ; ++i) cin>>b[i] ; for(int i = 0 ; i < n ; ++i) a[i] = max(a[i] , b[i]) ; long long l = 0 , r = 1e15 ; long long ans = l ; while(l <= r) { long long mid = (l + r) >> 1ll ; if(check(mid)) ans = mid , l = mid+1ll ; else r = mid-1ll ; } return cout<<ans<<"\n" , 0 ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...