This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#pragma gcc optimize('ofast','unroll-loops')
#define endl '\n'
#define ff first
#define ss second
#define pb emplace_back
#define mp make_pair
#define all(x) x.begin(),x.end()
#define sz(x) (int)x.size()
#define rep(a,b,c) for(ll a=b;a<c;a++)
typedef long long ll;
typedef pair<int,int> pii;
typedef vector<int> vi;
const ll maxn = 300005;
const ll maxm = 200005;
const ll mod = 1000000007;
void solve(){
ll n, m;
ll arr[maxn];
ll brr[maxn];
cin >> n >> m;
rep(i,0,n) cin >> arr[i];
rep(i,0,n) cin >> brr[i];
rep(i,0,n) arr[i] = max(arr[i],brr[i]);
ll l = 0;
ll r = 1ll<<60;
while(l+1<r){
ll mid = (l+r)/2;
ll ac = 0;
//cout<<mid<<endl;
rep(i,0,n){
if(arr[i]*m>=mid) ac += (mid+arr[i]-1ll)/arr[i];
else ac += m+(mid-arr[i]*m+brr[i]-1ll)/brr[i];
//cout << ac << ' ';
if(ac>n*m) break;
}//cout<<endl;
if(ac>n*m) r = mid;
else l = mid;
}
//cout<<(-1)/2<<endl;//int mid=18,ac=0;rep(i,0,n){if(arr[i]*m>=mid)ac-=m-(mid-1)/arr[i]-1;else ac+=(mid-arr[i]*m-1)/brr[i]+1;}cout<<ac<<endl;
cout << l << endl;
}
int main(){
//freopen("input.txt","r",stdin);
//freopen("sol.txt","w",stdout);
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t = 1;
//cin >> t;
while(t--) solve();
}
Compilation message (stderr)
Main.cpp:4: warning: ignoring '#pragma gcc optimize' [-Wunknown-pragmas]
4 | #pragma gcc optimize('ofast','unroll-loops')
|
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |