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
#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    long long h, w, n, wynik = 0, wx, p;
    cin >> w >> h >> n;
    long long tab[n];
    for(int i = 0; i < n; i++){
        cin >> tab[i];
    }
    sort(tab, tab + n);
    if((w%tab[0] != 0) or (h%tab[0] != 0)){
        cout << -1;
        return 0;
    }
    wynik = (w/tab[0])*(h/tab[0]);
    for(int i = 1; i < n; i++){
        p = (w/tab[i])*(h/tab[i]);
        wynik -= p*(tab[i]/tab[i-1])*(tab[i]/tab[i-1]);
        wynik += p;
    }
    cout << wynik;
}