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