#include <algorithm>
#include <bits/stdc++.h>
#include <iterator>
using namespace std;
int n;
int calc_res(vector<int> v, int w, int h) {
if (v.empty())
return 0;
int l = v.back();
int res = (w / l) * (h / l);
v.pop_back();
return res + calc_res(v, (w % l), h - (h % l)) + calc_res(v, w, (h % l));
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int w, h;
cin >> w >> h;
cin >> n;
vector<int> v(n);
for (int &i : v)
cin >> i;
if (w % v[0] != 0 || h % v[0] != 0) {
cout << "-1\n";
return 0;
}
cout << calc_res(v, w, h) << '\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 35 | #include <algorithm> #include <bits/stdc++.h> #include <iterator> using namespace std; int n; int calc_res(vector<int> v, int w, int h) { if (v.empty()) return 0; int l = v.back(); int res = (w / l) * (h / l); v.pop_back(); return res + calc_res(v, (w % l), h - (h % l)) + calc_res(v, w, (h % l)); } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int w, h; cin >> w >> h; cin >> n; vector<int> v(n); for (int &i : v) cin >> i; if (w % v[0] != 0 || h % v[0] != 0) { cout << "-1\n"; return 0; } cout << calc_res(v, w, h) << '\n'; } |
English