#include <bits/stdc++.h>
#define int long long
using namespace std;
vector<int>obr;
int s=0;
void pro(int x, int y){
if(x==0 || y==0) return;
int biggest=0;
for(int i=0;i<obr.size();i++)
{
if(obr[i]<=min(x, y)){
biggest=obr[i];
break;
}
}
int hmx=x/biggest;
int hmy=y/biggest;
s+=hmy*hmx;
int x1,y1,x2,y2,x3,y3;
x1=x-(hmx*biggest);
y1=hmy*biggest;
x2=hmx*biggest;
y2=y-(hmy*biggest);
x3=x1;
y3=y2;
pro(x1,y1);
pro(x2,y2);
pro(x3,y3);
}
int32_t main(){
cin.tie(0)->sync_with_stdio(0);
int x,y;
cin>>x>>y;
int z;
cin>>z;
for(int i=0;i<z;i++)
{
int t;
cin>>t;
if(t<=min(x,y)) obr.push_back(t);
}
sort(obr.begin(),obr.end(),greater());
if(obr.size()==0){
cout<<-1; return 0;
}
int mini=obr[obr.size()-1];
if(x%mini!=0 || y%mini!=0){
cout<<-1; return 0;
}
pro(x,y);
cout<<s;
}
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | #include <bits/stdc++.h> #define int long long using namespace std; vector<int>obr; int s=0; void pro(int x, int y){ if(x==0 || y==0) return; int biggest=0; for(int i=0;i<obr.size();i++) { if(obr[i]<=min(x, y)){ biggest=obr[i]; break; } } int hmx=x/biggest; int hmy=y/biggest; s+=hmy*hmx; int x1,y1,x2,y2,x3,y3; x1=x-(hmx*biggest); y1=hmy*biggest; x2=hmx*biggest; y2=y-(hmy*biggest); x3=x1; y3=y2; pro(x1,y1); pro(x2,y2); pro(x3,y3); } int32_t main(){ cin.tie(0)->sync_with_stdio(0); int x,y; cin>>x>>y; int z; cin>>z; for(int i=0;i<z;i++) { int t; cin>>t; if(t<=min(x,y)) obr.push_back(t); } sort(obr.begin(),obr.end(),greater()); if(obr.size()==0){ cout<<-1; return 0; } int mini=obr[obr.size()-1]; if(x%mini!=0 || y%mini!=0){ cout<<-1; return 0; } pro(x,y); cout<<s; } |
English