제출 #1168801

#제출 시각아이디문제언어결과실행 시간메모리
1168801lufychopSelf Study (JOI22_ho_t2)C++20
0 / 100
273 ms5108 KiB
#include <bits/stdc++.h> using namespace std; bool cmp(const pair<long long,long long> a,const pair<long long,long long> b) { if(max(a.first,a.second)==max(b.first,b.second)) { return min(a.first,a.second)>min(b.first,b.second); } return max(a.first,a.second)>max(b.first,b.second); } int main(void) { long long n,m,l,r,ans=-1,mid,mn; cin>>n>>m; vector<pair<long long,long long>> v(n); for(int i=0;i<n;i++) { cin>>v[i].first; } for(int i=0;i<n;i++) { cin>>v[i].second; v[i].first=max(v[i].first,v[i].second); } sort(v.begin(),v.end(),cmp); // for(int i=0;i<n;i++) // { // cout<<v[i].first<<" "<<v[i].second<<"\n"; // } l=0; r=LLONG_MAX; while(l<=r) { mid=l+(r-l)/2; mn=m*n; long long cntfree=0,t; for(int i=0;i<n;i++) { t=(mid/v[i].first)+((mid%v[i].first)!=0); if(t<=m) { cntfree=cntfree+m-t; } else { t=mid-v[i].first*m; t=(t/v[i].second)+((t%v[i].second)!=0); cntfree=cntfree-t; } } if(cntfree>=0) { ans=max(ans,mid); l=mid+1; } else { r=mid-1; } } cout<<ans; return 0; } /* 3 3 19 4 5 2 6 2 2 1 9 7 2 6 */
#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...