#include <iostream>
using namespace std;
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
int h, w, n;
cin >> h >> w >> n;
int obr[n];
for (int i = 0; i < n; i++) {
cin >> obr[i];
}
int ileob[n+1], pole = 0;
ileob[n-1] = (h / obr[n-1]) * (w / obr[n-1]);
pole = ileob[n-1] * obr[n-1] * obr[n-1];
int sumob = ileob[n-1];
for (int i = n - 2; i >= 0; i--) {
ileob[i] = (h / obr[i]) * (w / obr[i]);
pole = ileob[i] * obr[i] * obr[i];
sumob += ileob[i] - (obr[i+1] / obr[i]) * (obr[i+1] / obr[i]) * ileob[i+1];
}
if (pole != w * h) {
cout << -1;
return 0;
}
cout << sumob << " ";
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 32 33 34 35 36 37 38 39 | #include <iostream> using namespace std; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); int h, w, n; cin >> h >> w >> n; int obr[n]; for (int i = 0; i < n; i++) { cin >> obr[i]; } int ileob[n+1], pole = 0; ileob[n-1] = (h / obr[n-1]) * (w / obr[n-1]); pole = ileob[n-1] * obr[n-1] * obr[n-1]; int sumob = ileob[n-1]; for (int i = n - 2; i >= 0; i--) { ileob[i] = (h / obr[i]) * (w / obr[i]); pole = ileob[i] * obr[i] * obr[i]; sumob += ileob[i] - (obr[i+1] / obr[i]) * (obr[i+1] / obr[i]) * ileob[i+1]; } if (pole != w * h) { cout << -1; return 0; } cout << sumob << " "; return 0; } |
English