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