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<bits/stdc++.h>
using namespace std;
long long ile_poziom,ile_pion,reszta_poziom,reszta_pion;
vector<int> obrazy;
int main()
{
    ios_base::sync_with_stdio(0);
    long long n,uciete=0,skala;
    long long h,w,a,pole;
    cin>>h>>w;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a;
        obrazy.push_back(a);
    }
    if(h%obrazy[0]!=0 or w%obrazy[0]!=0)
    {
        cout<<"-1";
        return 0;
    }
    ile_poziom=w/obrazy[0];
    ile_pion=h/obrazy[0];
    for(int i=1;i<obrazy.size();i++)
    {
        skala=obrazy[i]/obrazy[i-1];
        reszta_pion=ile_pion%skala;
        reszta_poziom=ile_poziom%skala;
        uciete+=reszta_pion*ile_poziom+reszta_poziom*ile_pion-reszta_pion*reszta_poziom;
        ile_pion/=skala;
        ile_poziom/=skala;
        if(ile_poziom==0 or ile_pion==0) break;
    }
    cout<<uciete+ile_pion*ile_poziom;
}