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
#include<bits/stdc++.h>
using namespace std;
vector<long long> v;
long long f(long long w, long long h, long long j)
{
    //cout << w << " " << h << "\n";


    if(j < 0)
    {
        cout << -1;
        exit(0);
    }
    long long x = (w / v[j]) * (h / v[j]);
    long long y = 0;
    long long z = 0;

    if(w / v[j] * v[j] < w) y = f(w - (w / v[j] * v[j]), v[j] * (h / v[j]), j - 1);
    if(h / v[j] * v[j] < h) z = f(w, h - (h / v[j] * v[j]), j - 1);
    return x + y + z;
}

long long w, h, n, sum, wyn;

int main()
{
    cin >> h >> w >> n;
    for(int i = 0; i < n; i++)
    {
        long long a;
        cin >> a;
        v.push_back(a);
    }
    sort(v.begin(), v.end());
    cout << f(w, h, n - 1);
}