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