#include<bits/stdc++.h>
#define LL long long
#define LLL __int128
#define uint unsigned
#define ldb long double
#define uLL unsigned long long
using namespace std;
int H,W,n,D[35];LL ans;
signed main(){
cin.tie(0)->sync_with_stdio(0);
cin>>H>>W>>n,D[n]=max(H,W)+1;
for(int i=0;i<n;++i)cin>>D[i];
if(H%D[0]||W%D[0])return cout<<"-1",0;
for(int i=0;i<n;++i)ans+=1ll*(H/D[i])*(W/D[i])-1ll*(H/D[i+1]*(D[i+1]/D[i]))*(W/D[i+1]*(D[i+1]/D[i]));
return cout<<ans,0;
}
/*
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include<bits/stdc++.h> #define LL long long #define LLL __int128 #define uint unsigned #define ldb long double #define uLL unsigned long long using namespace std; int H,W,n,D[35];LL ans; signed main(){ cin.tie(0)->sync_with_stdio(0); cin>>H>>W>>n,D[n]=max(H,W)+1; for(int i=0;i<n;++i)cin>>D[i]; if(H%D[0]||W%D[0])return cout<<"-1",0; for(int i=0;i<n;++i)ans+=1ll*(H/D[i])*(W/D[i])-1ll*(H/D[i+1]*(D[i+1]/D[i]))*(W/D[i+1]*(D[i+1]/D[i])); return cout<<ans,0; } /* */ |
English