#include <bits/stdc++.h> #define ll long long using namespace std; vector <ll> t; ll w,h,res=0; void f(ll x, ll &w, ll &h, ll i){ int w1=w,h1=h; w/=x; w*=x; h/=x; h*=x; res+=((w1*h1)-(w*h))/(t[i-1]*t[i-1]); //cout<<res<<" "<<w<<" "<<h<<" "<<w1<<" "<<h1<<" "<<t[i-1]<<endl; } int main() { int n; cin>>w>>h>>n; for(int i=1; i<=n; i++){ int x; cin>>x; t.push_back(x); } sort(t.begin(),t.end()); if(w%t[0]!=0 || h%t[0]!=0){ cout<<"-1"; return 0; } ll *ith=&h; ll *itw=&w; for(int i=1; i<n; i++) f(t[i],w,h,i); res+=w*h/(t[n-1]*t[n-1]); cout<<res<<endl; return 0; }
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> #define ll long long using namespace std; vector <ll> t; ll w,h,res=0; void f(ll x, ll &w, ll &h, ll i){ int w1=w,h1=h; w/=x; w*=x; h/=x; h*=x; res+=((w1*h1)-(w*h))/(t[i-1]*t[i-1]); //cout<<res<<" "<<w<<" "<<h<<" "<<w1<<" "<<h1<<" "<<t[i-1]<<endl; } int main() { int n; cin>>w>>h>>n; for(int i=1; i<=n; i++){ int x; cin>>x; t.push_back(x); } sort(t.begin(),t.end()); if(w%t[0]!=0 || h%t[0]!=0){ cout<<"-1"; return 0; } ll *ith=&h; ll *itw=&w; for(int i=1; i<n; i++) f(t[i],w,h,i); res+=w*h/(t[n-1]*t[n-1]); cout<<res<<endl; return 0; } |