Module: Algoritma tamak


Problem

1 /9


Formaggio membeli panzerotti

Theory Click to read/hide

Algoritma tamak ialah algoritma yang pada setiap langkah memilih varian optimum (dalam langkah semasa) dengan jangkaan bahawa penyelesaian akhir akan optimum dalam pengertian global.

Contoh kecil:
Katakan kita mempunyai bilangan syiling yang tidak terhad dalam denominasi berbeza dan kita perlu mengumpul jumlah S. Mari kita pertimbangkan dua kes tertentu, setiap satu daripadanya akan kita cuba selesaikan dengan algoritma tamak.
Iaitu, kami akan bertindak seperti berikut: pada setiap langkah kami akan mengambil syiling dengan denominasi tertinggi (pilihan terbaik dalam langkah), yang tidak melebihi jumlah yang tinggal.

a) Biarkan denominasi syiling ialah 1, 5 dan 10, dan S = 27.
1) Ambil 10, S: 27 -> 17
2) Ambil 10, S: 17 -> 7
3) Ambil 5, S: 7 -> 2
4) Ambil 1, S: 2 -> 1
5) Ambil 1, S: 1 -> 0
Akibatnya, mereka mendapat jumlah lima syiling. Anda boleh secara bebas (contohnya, kekerasan) memastikan bahawa untuk 4 syiling atau kurang anda tidak akan dapat menjaringkan 27.

b) Biarkan denominasi syiling itu ialah 1, 5 dan 7, dan S = 24.
1) Ambil 7, S: 24 -> 17
2) Ambil 7, S: 17 -> 10
3) Ambil 7, S: 10 -> 3
4) Ambil 1, S: 3 -> 2
5) Ambil 1, S: 2 -> 1
6) Ambil 1, S: 1 -> 0.
Kami menjaringkan enam syiling, tetapi boleh menjaringkan S dengan empat syiling - dua dengan nilai muka 7 dan dua dengan nilai muka 5.

Seperti yang dapat dilihat dari contoh, tidak selalu mungkin untuk menyelesaikan masalah dengan algoritma tamak. Tetapi jika ia membawa kepada jawapan optimum keseluruhan, maka ia biasanya lebih mudah daripada menggunakan pengaturcaraan dinamik atau kaedah lain.

Problem

Formaggio sangat menyukai panzerotti dengan pelbagai tampalan, dan ia tidak begitu penting dengan yang mana satu. Suatu ketika, dalam keadaan lapar, Formaggio pergi ke kedai roti dan melihat bahawa panzerotti dengan tomato, bayam dan cendawan dijual.
Formaggio ingin membeli panzerotti sebanyak mungkin, tetapi masalahnya ialah bilangan panzerotti yang dijual adalah terhad, sama seperti wang Formaggio.

Bantu Formaggio menentukan bilangan maksimum panzerotti yang boleh dibelinya.

Input:
Baris pertama mengandungi nombor P1, P2 dan P3 – kos panzerotti dengan tomato, bayam dan cendawan masing-masing.
Baris kedua mentakrifkan nilai N1, N2 dan N3 – bilangan panzerotti yang sepadan dijual. 
Baris ketiga mengandungi nombor R – jumlah wang yang dimiliki Formaggio. 
Semua nombor dalam input adalah integer positif tidak melebihi 10000.

Output:
Cetak satu integer - bilangan maksimum panzerotti yang Formaggio boleh beli.

Contoh:
 
Input Output
5 3 8
2 6 4
23
7