이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
int n, m;
vector<ll> a, b;
vector<ld> r;
ll gcd(ll a, ll b){
if(b == 0) return a;
return gcd(b, a % b);
}
ll lcm(ll a, ll b){ return a / gcd(a, b) * b; }
int main(){
cin >> n >> m;
a.resize(n);
b.resize(n);
r.resize(n);
for(int i = 0; i < n; i++) cin >> a[i];
for(int i = 0; i < n; i++) cin >> b[i];
ll tmp = 1;
for(int i = 0; i < n; i++) tmp = lcm(tmp, a[i]);
ll tot = n * m, c = 0;
for(int i = 0; i < n; i++){
r[i] = ld(tmp) / ld(a[i]);
c += r[i];
}
ld per = ld(tot) / ld(c), ans = 1e10;
ll count = 0;
for(int i = 0; i < n; i++){
r[i] *= per;
ans = min(ans, r[i] * a[i]);
count += r[i] * a[i];
}
cout << ((count < n) ? int(ans) : int(ans) + *min_element(a.begin(), a.end()) * (n / count));
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |