Submission #766458

#TimeUsernameProblemLanguageResultExecution timeMemory
766458HoriaHaivasSelf Study (JOI22_ho_t2)C++14
100 / 100
203 ms5004 KiB
/* "TLE is like the wind, always by my side" - Yasuo - 2022 - */ #include <bits/stdc++.h> #define debug(x) cerr << #x << " " << x << "\n" #define debugs(x) cerr << #x << " " << x << " " #pragma GCC optimize("Ofast") #define int long long using namespace std; int n,m,i,j,r,pas; int a[300005]; int b[300005]; int courseneed(int val, int course, int study) { int ans; ans=0; if (course*m<val) { ans+=m; val-=course*m; if (val%study==0) ans+=val/study; else ans+=val/study+1; } else { if (val%course==0) ans+=val/course; else ans+=val/course+1; } return ans; } bool possible(int minimum) { int sum; sum=0; for (i=1;i<=n;i++) { sum+=courseneed(minimum,a[i],b[i]); if (sum>n*m) return 0; } return 1; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; for (i=1;i<=n;i++) { cin >> a[i]; } for (i=1;i<=n;i++) { cin >> b[i]; } for (i=1;i<=n;i++) { a[i]=max(a[i],b[i]); } r=0; pas=(1LL<<60); while (pas) { if (possible(r+pas)) r+=pas; pas=pas/2; } cout << r; }
#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...