#include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("input.in", "r", stdin); long long k,l; cin>>k>>l; long long n,a; vector<long long> obrazy; cin>>n; for(long long i=0; i<n; i++){ cin>>a; obrazy.push_back(a); } sort(obrazy.begin(), obrazy.end(),greater<long long>()); long long wyn=0; while (k!=0 and l!=0){ if(k>l) swap(k,l); //k jest mniejszym wymiarem long long pierwszy=-1; long long ile_potrzeba=k; long long wyn_tmp=0; for(long long i=0; i<n; i++){ if(l>=obrazy[i] and pierwszy==-1){ pierwszy=obrazy[i]; } if(ile_potrzeba>=obrazy[i]){ wyn_tmp+=(pierwszy/obrazy[i])*(ile_potrzeba/obrazy[i]); ile_potrzeba=ile_potrzeba%obrazy[i]; } } // cout<<pierwszy<<" "<<ile_potrzeba<<endl; if(ile_potrzeba!=0){ cout<<-1; return 0; } // l-=pierwszy; wyn+=(wyn_tmp*(l/pierwszy)); l=l%pierwszy; } cout<<wyn; }
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 | #include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("input.in", "r", stdin); long long k,l; cin>>k>>l; long long n,a; vector<long long> obrazy; cin>>n; for(long long i=0; i<n; i++){ cin>>a; obrazy.push_back(a); } sort(obrazy.begin(), obrazy.end(),greater<long long>()); long long wyn=0; while (k!=0 and l!=0){ if(k>l) swap(k,l); //k jest mniejszym wymiarem long long pierwszy=-1; long long ile_potrzeba=k; long long wyn_tmp=0; for(long long i=0; i<n; i++){ if(l>=obrazy[i] and pierwszy==-1){ pierwszy=obrazy[i]; } if(ile_potrzeba>=obrazy[i]){ wyn_tmp+=(pierwszy/obrazy[i])*(ile_potrzeba/obrazy[i]); ile_potrzeba=ile_potrzeba%obrazy[i]; } } // cout<<pierwszy<<" "<<ile_potrzeba<<endl; if(ile_potrzeba!=0){ cout<<-1; return 0; } // l-=pierwszy; wyn+=(wyn_tmp*(l/pierwszy)); l=l%pierwszy; } cout<<wyn; } |