# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
646129 | PagodePaiva | Self Study (JOI22_ho_t2) | C++14 | 0 ms | 0 KiB |
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>
#define int long long
#define ms(v) memset(v, -1, sizeof v)
#define pi pair<int, int>
#define pb push_back
#define fr first
#define sc second
#define srt(v) sort(v.begin(), v.end())
#define INF 1e15
#define N 300010
using namespace std;
int n, m;
int a[N], b[N];
int32_t main(){
ios::sync_with_stdio(false); cin.tie(0);
cin >> n >> m;
int penis = n*m;
assert(penis <= 300000);
priority_queue <pi> q;
for(int i = 1;i <= n;i++){
q.push({0, i});
}
for(int i = 1;i <= n;i++){
cin >> a[i];
}
for(int i = 1;i <= n;i++){
cin >> b[i];
}
if(m == 1){
int mint = INF;
for(int i = 1;i <= n;i++){
int maxt = max(a[i], b[i]);
if(maxt < mint) mint = maxt;
}
cout << maxt << "\n";
return 0;
}
for(int i = 0;i < m;i++){
for(int j = 1;j <= n;j++){
int p = -q.top().fr;
int v = q.top().sc;
q.pop();
q.push({-(p + a[v]), v});
}
}
cout << -q.top().fr << "\n";
return 0;
}