#include<bits/stdc++.h> using namespace std; typedef long long ll; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); ll h,w; cin>>h>>w; ll a; cin>>a; ll t[a]{}; vector<ll>wyniki; ll wsize=0; ll p=h*w; ll b; cin>>b; b=b*b; if(p%b!=0){cout<<-1;} else{ t[0]=b; for(ll i=1;i<a;i++){ cin>>b; b=b*b; t[i]=b; } for(ll i=a-1;i>=0;i--){ ll il=p/t[i]; ll np=p-(t[i]*il); if(np%t[0]!=0){continue;} else{ wyniki.push_back(il); for(ll j=i-1;j>=0;j--){ while(np-t[j]>=0){ wyniki[wsize]++; np=np-t[j];}} wsize++; } } ll answer=wyniki[0]; for(ll i=0;i<wsize;i++){ if(wyniki[i]<answer){answer=wyniki[i];} } cout<<answer; }}
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 | #include<bits/stdc++.h> using namespace std; typedef long long ll; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); ll h,w; cin>>h>>w; ll a; cin>>a; ll t[a]{}; vector<ll>wyniki; ll wsize=0; ll p=h*w; ll b; cin>>b; b=b*b; if(p%b!=0){cout<<-1;} else{ t[0]=b; for(ll i=1;i<a;i++){ cin>>b; b=b*b; t[i]=b; } for(ll i=a-1;i>=0;i--){ ll il=p/t[i]; ll np=p-(t[i]*il); if(np%t[0]!=0){continue;} else{ wyniki.push_back(il); for(ll j=i-1;j>=0;j--){ while(np-t[j]>=0){ wyniki[wsize]++; np=np-t[j];}} wsize++; } } ll answer=wyniki[0]; for(ll i=0;i<wsize;i++){ if(wyniki[i]<answer){answer=wyniki[i];} } cout<<answer; }} |