#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;
}
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; } |
English