Submission #766393

#TimeUsernameProblemLanguageResultExecution timeMemory
766393HoriaHaivasSelf Study (JOI22_ho_t2)C++14
10 / 100
93 ms11452 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[300001]; int b[300001]; int courseneed(int val, int a, int b) { int ans; ans=0; if (a*m<val) { ans+=m; val-=a*m; if (val%b==0) ans+=val/b; else ans+=val/b+1; } else { if (val%a==0) ans+=val/a; else ans+=val/a+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 1; return 0; } 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=(1<<30); 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...