#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
ll h, w; cin >> h >> w;
int n; cin >> n;
vector<ll> dl(n);
for(int i = 0; i < n; ++i) cin >> dl[i];
sort(dl.begin(),dl.end());
if((h % dl[0]) != 0 || (w % dl[0]) != 0){cout << -1; return 0;}
ll wyn = (h / dl[0]) * (w / dl[0]); ll nh, nw;
for(int i = 1; i < n; ++i){
nh = (h / dl[i]) * dl[i]; nw = (w / dl[i]) * dl[i];
wyn -= (nh / dl[i - 1]) * (nw / dl[i - 1]);
wyn += (nh / dl[i]) * (nw / dl[i]);
w = nw; h = nh;
}
cout << wyn << "\n";
return 0;
}
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 | #include <bits/stdc++.h> using namespace std; typedef long long ll; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); ll h, w; cin >> h >> w; int n; cin >> n; vector<ll> dl(n); for(int i = 0; i < n; ++i) cin >> dl[i]; sort(dl.begin(),dl.end()); if((h % dl[0]) != 0 || (w % dl[0]) != 0){cout << -1; return 0;} ll wyn = (h / dl[0]) * (w / dl[0]); ll nh, nw; for(int i = 1; i < n; ++i){ nh = (h / dl[i]) * dl[i]; nw = (w / dl[i]) * dl[i]; wyn -= (nh / dl[i - 1]) * (nw / dl[i - 1]); wyn += (nh / dl[i]) * (nw / dl[i]); w = nw; h = nh; } cout << wyn << "\n"; return 0; } |
English