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