Submission #534281

#TimeUsernameProblemLanguageResultExecution timeMemory
534281Paul_Liao_1457Self Study (JOI22_ho_t2)C++14
10 / 100
204 ms5020 KiB
// 還要更強 #include<iostream> #include<queue> #include<set> #include<map> #include<iomanip> #include<math.h> #include<cstring> #include<stack> #include<string.h> #include<random> #include<algorithm> #include<vector> #include <cassert> #define ll __int128_t #define FOR(i,a,b) for(ll i=a;i<b;i++) #define REP(i,a,b) for(int i=a;i>=b;i--) #define INF (ll)(1e9) #define pb push_back #define F first #define S second #define AC ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl "\n" using namespace std; long long n,m; long long aaa[300005],bbb[300005]; signed main(){ AC; cin>>n>>m; FOR(i,1,n+1){ cin>>aaa[i]; aaa[i]=abs(aaa[i]); } FOR(i,1,n+1){ cin>>bbb[i]; bbb[i]=abs(bbb[i]); aaa[i]=max(aaa[i],bbb[i]); } ll l=0,r=(3e18+1),ans=0; while(l<r){ ll mid=(l+r)/2,tot=0; FOR(i,1,n+1){ if(aaa[i]*m<mid){ ll tmp=mid-aaa[i]*m; tot+=(tmp-1)/bbb[i]+1; } else{ ll used=(mid-1)/aaa[i]+1; used=1; tot-=m-used; //cerr<<"m="<<m<<endl; } //cout<<"m="<<m<<endl; } //cout<<"mid="<<mid<<" tot="<<tot<<endl; if(tot<=0){ ans=max(ans,mid); l=mid+1; } else{ r=mid; } } cout<<(long long)ans<<endl; }
#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...