#include<bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
long long wys,szer;
cin>>wys>>szer;
int lob;
cin>>lob;
vector<int> obr(lob);
for(int i=0; i<lob; i++){
cin>>obr[i];
}
sort(obr.begin(),obr.end());
reverse(obr.begin(),obr.end());
long long lbsz=0,lbwys=0;
long long wyn=0;
for(auto ob:obr){
wyn+=((wys-lbwys)/ob)*(lbsz/ob);
wyn+=((szer-lbsz)/ob)*(lbwys/ob);
wyn+=((szer-lbsz)/ob)*((wys-lbwys)/ob);
lbsz+=((szer-lbsz)/ob)*ob;
lbwys+=((wys-lbwys)/ob)*ob;
}
if(lbwys==wys&&lbsz==szer){
cout<<wyn;
}
else cout<<"-1";
}
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 | #include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); long long wys,szer; cin>>wys>>szer; int lob; cin>>lob; vector<int> obr(lob); for(int i=0; i<lob; i++){ cin>>obr[i]; } sort(obr.begin(),obr.end()); reverse(obr.begin(),obr.end()); long long lbsz=0,lbwys=0; long long wyn=0; for(auto ob:obr){ wyn+=((wys-lbwys)/ob)*(lbsz/ob); wyn+=((szer-lbsz)/ob)*(lbwys/ob); wyn+=((szer-lbsz)/ob)*((wys-lbwys)/ob); lbsz+=((szer-lbsz)/ob)*ob; lbwys+=((wys-lbwys)/ob)*ob; } if(lbwys==wys&&lbsz==szer){ cout<<wyn; } else cout<<"-1"; } |
English