#include<bits/stdc++.h>
using namespace std;
long long solve(const vector<long long> &P, long long h, long long w)
{
vector<long long> C(P.size());
C[0] = h/P[0] * w/P[0];
for(int i=1; i<P.size(); i++)
{
C[i] = (h/P[i]) * (w/P[i]);
long long q = P[i]/P[i-1] * P[i]/P[i-1];
C[i-1] -= C[i]*q;
}
long long s = 0;
for(auto it:C) s += it;
return s;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
long long h, w, n;
cin >> h >> w >> n;
vector<long long> P(n);
for(auto &it:P) cin >> it;
if(h % P[0] > 0 || w % P[0] > 0) cout << -1 << "\n";
else cout << solve(P, h, w) << "\n";
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include<bits/stdc++.h> using namespace std; long long solve(const vector<long long> &P, long long h, long long w) { vector<long long> C(P.size()); C[0] = h/P[0] * w/P[0]; for(int i=1; i<P.size(); i++) { C[i] = (h/P[i]) * (w/P[i]); long long q = P[i]/P[i-1] * P[i]/P[i-1]; C[i-1] -= C[i]*q; } long long s = 0; for(auto it:C) s += it; return s; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); long long h, w, n; cin >> h >> w >> n; vector<long long> P(n); for(auto &it:P) cin >> it; if(h % P[0] > 0 || w % P[0] > 0) cout << -1 << "\n"; else cout << solve(P, h, w) << "\n"; } |
English