#include <iostream> #include <algorithm> using namespace std; long long h,w,n; long long tab[31]; long long ile=1e18+1; int main() { cin>>h>>w>>n; for(int i=0;i<n;i++) cin>>tab[i]; if(h%tab[0]!=0 || w%tab[0]!=0 || tab[0]>h || tab[0]>w) { cout<<-1; return 0; } for(int z=0;z<n;z++){ long long zlicz=0; int aktwys=0; for(int i=z;i>=0;i--) { long long licz=0; if(aktwys>=h) break; if(h-aktwys>=tab[i]) {licz=(h-aktwys)/tab[i]; aktwys=aktwys+licz*tab[i];} else continue; long long aktdlug=0,licz2=0; for(int j=i;j>=0;j--) { if(aktdlug>=w) break; if(w-aktdlug>=tab[j]) { licz2=(w-aktdlug)/tab[j]; aktdlug=aktdlug+licz2*tab[j]; } else continue; zlicz=zlicz+tab[i]*licz*licz2/tab[j]; } } ile=min(ile,zlicz); } cout<<ile; 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include <iostream> #include <algorithm> using namespace std; long long h,w,n; long long tab[31]; long long ile=1e18+1; int main() { cin>>h>>w>>n; for(int i=0;i<n;i++) cin>>tab[i]; if(h%tab[0]!=0 || w%tab[0]!=0 || tab[0]>h || tab[0]>w) { cout<<-1; return 0; } for(int z=0;z<n;z++){ long long zlicz=0; int aktwys=0; for(int i=z;i>=0;i--) { long long licz=0; if(aktwys>=h) break; if(h-aktwys>=tab[i]) {licz=(h-aktwys)/tab[i]; aktwys=aktwys+licz*tab[i];} else continue; long long aktdlug=0,licz2=0; for(int j=i;j>=0;j--) { if(aktdlug>=w) break; if(w-aktdlug>=tab[j]) { licz2=(w-aktdlug)/tab[j]; aktdlug=aktdlug+licz2*tab[j]; } else continue; zlicz=zlicz+tab[i]*licz*licz2/tab[j]; } } ile=min(ile,zlicz); } cout<<ile; return 0; } |