206. Turist

 

Gena öz məktəbinin şagirdləri ilə turist səfərinə hazırlaşır. Öz siniflərində o, turist çadırına cavabdeh təyin olunmuşdu. Öz evlərində o, 3 çadır tapdı: onlardan birincisi a1 kiloqramdır və b1 adam tutur, ikincisi a2 kiloqramdır və b2 adam tutur, üçüncüsü isə a3 kiloqramdır və b3 adam tutur.

Gena gilin sinfində k şagird var. Aydınlaşdırın: o, çadırları elə seçə bilərmi ki, onlarda bütün şagirdlər hamısı yerləşə bilsin. Bu zaman nəzərə alın ki, seçilmış çadırların ümumi çəkisi w kiloqramdan çox olmasın.

 

Giriş verilənləri. Birinci sətir iki tam ədədi ehtiva edir: kw (1 ≤ k ≤ 15, 1 ≤ w ≤ 30). İkinci sətir altı tam ədədi ehtiva edir: a1, b1, a2, b2, a3, b3 (1 ≤ a1, a2, a3 ≤ 10, 1 ≤ b1, b2, b3 ≤ 15).

 

Çıxış verilənləri. Göstərilən şəkildə çadırları seçmək mümkün olarsa, YES, əks halda isə NO verin.

 

Alqoritmin analizi

10 10

5 5 6 6 4 5

 

Alqoritmin reallaşdırılması

YES

 

 

HƏLLİ

sadə məsələ - şərt operatoru

 

Alqoritmin analizi

Belə ki, çadırların sayı üçdür, ona görə də şagirdlərin çadırlarda yerləşdirilməsinin bütün mümkün variantlarına baxmaq olar. Yəni, şagirdləri növbəti şəkildə yerləşdirmə hallarına baxmaq olar:

·         yalnız birinci çadırda;

·         yalnız ikinci çadırda;

·         yalnız üçüncü çadırda;

·         yalnız birinci və ikinci çadırda;

·         yalnız birinci və üçüncü çadırda;

·         yalnız ikinci və üçüncü çadırda;

·         hər üç cadırda.

Bütün göstərilən variantlara yeddi şərt operatoru ilə baxmaq olar. flag dəyişkənini elan edək, onun başlanğıc qiymətini 0 verək (0 qiyməti bütün şagirdlərin çadırlarda yerləşdirilməsinin mümkün olmadığını ifadə edir). Daha sonra verilmiş hər bir yeddi yerləşdirmənin mümkünlüyünü yoxlayaq.

Məsələn, bütün şagirdlərin yalnız ikinci çadırda yerləşdirilməsi şərti növbəti şəkildə olacaq:

if ((b2 >= k) && (a2 <= w)) flag = 1;

Bütün şagirdlərin yalnız birinci və üçüncü çadırda yerləşdirilməsi şərti növbəti şəkildə olacaq:

if ((b1 + b3 >= k) && (a1 + a3 <= w)) flag = 1;

Bütün yeddi şərti yoxladıqdan sonra flag dəyişkəninin qiymətindən asılı olaraq cavabı vermək lazımdır.

 

Alqoritmin reallaşdırılması

Şagirdlərin çadırlarda yerləşdirilməsinin bütün mümkün variantlarının seçilməsini reallaşdıraq.

 

scanf("%d %d",&k,&w);

scanf("%d %d %d %d %d %d",&a1,&b1,&a2,&b2,&a3,&b3);

if ((b1 >= k) && (a1 <= w)) flag = 1;

if ((b2 >= k) && (a2 <= w)) flag = 1;

if ((b3 >= k) && (a3 <= w)) flag = 1;

if ((b1 + b2 >= k) && (a1 + a2 <= w)) flag = 1;

if ((b1 + b3 >= k) && (a1 + a3 <= w)) flag = 1;

if ((b2 + b3 >= k) && (a2 + a3 <= w)) flag = 1;

if ((b1 + b2 + b3 >= k) && (a1 + a2 + a3 <= w)) flag = 1;

if (flag) printf("YES\n"); else printf("NO\n");