#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
ll d[33];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
ll h,w,n;
cin >> h >> w;
cin >> n;
for (int x=1;x<=n;x++) cin >> d[x];
ll odp=0;
for (int x=n;x>=1;x--){
ll temp = h;
ll temp2=0;
for (int y=x;y>=1;y--){
temp2 += (temp/d[y])*(d[x]/d[y]);
temp = temp%d[y];
}
if (temp>0){
cout << "-1\n";
return 0;
}
odp += temp2*(w/d[x]);
w%=d[x];
}
if (w>0){
cout << "-1\n";
return 0;
}
cout << odp << '\n';
return 0;
}
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 | #include <bits/stdc++.h> using namespace std; typedef long long int ll; ll d[33]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll h,w,n; cin >> h >> w; cin >> n; for (int x=1;x<=n;x++) cin >> d[x]; ll odp=0; for (int x=n;x>=1;x--){ ll temp = h; ll temp2=0; for (int y=x;y>=1;y--){ temp2 += (temp/d[y])*(d[x]/d[y]); temp = temp%d[y]; } if (temp>0){ cout << "-1\n"; return 0; } odp += temp2*(w/d[x]); w%=d[x]; } if (w>0){ cout << "-1\n"; return 0; } cout << odp << '\n'; return 0; } |
English