John okulunda öğrencilerin yapacağı
bir turist toplantısına katılacaktır. John kendi
sınıfında çadırlardan sorumlu
seçilmiştir. John evde 3
adet çadır buluyor: birinci çadır a1 kilogram ağırlığındadır
ve içine b1 kişi
sığmaktadır, ikinci çadırın
ağırlığı a2
kilogramdır içine b2
kişi sığmaktadır, üçüncünün
ağırlığı a3
kilogramdır ve içine b3
kişi sığmaktadır.
John’un sınıfında k öğrenci vardır. John’un
içine herkesi sığdıracak şekilde
çadırları seçip seçemeyeceğini bulunuz. Seçilecek
çadırların toplam ağırlığının w kilogramı geçmemesi
koşuluna da dikkat ediniz.
Girdi. İlk satırda 2 tamsayı
vardır: k ve w (1 ≤ k ≤ 15, 1 ≤ w
≤ 30). İkinci satırda 6 tamsayı vardır: a1, b1, a2,
b2, a3, b3
(1 ≤ a1, a2, a3 ≤ 10, 1 ≤ b1, b2,
b3 ≤ 15).
Çıktı. Eğer istenen şekilde
çadırları seçmek mümkünse YES, mümkün
değilse NO yazdırın.
Örnek
girdi
10 10
5 5 6 6 4 5
Örnek
çıktı
Basit problem – koşullu cümle
Algoritma analizi
Yalnızca 3 çadır
olduğu için öğrencilerin çadırlara
yerleştirilmesinin bütün alternatiflerini denemek
mümkündür. Bütün yerleştirme alternatifleri
şunlardır:
·
yalnızca
birinci çadıra;
·
yalnızca
ikinci çadıra;
·
yalnızca
üçüncü çadıra;
·
yalnızca
birinci ve ikinci çadıra;
·
yalnızca
birinci ve üçüncü çadıra;
·
yalnızca
ikinci ve üçüncü çadıra;
·
üç
çadırın hepsine.
Bu alternatiflerin tümünü 7
koşullu cümle ile denemek mümkündür. Flag
adıyla bir değişken tanımlayın ve ilk değer
olarak 0 verin (öğrencilerin tamamını eldeki 3
çadıra sığdırmak mümkün değildir). Daha
sonra mümkün olan yedi yerleştirmenin hepsini deneyin.
Örnek olarak, bütün
öğrencilerin yalnızca ikinci çadıra
yerleştirilme koşulu şöyledir:
if ((b2 >= k) && (a2 <= w)) flag = 1;
Bütün öğrencilerin
yalnızca birinci ve üçüncü çadırlara
yerleştirilme koşulu şöyledir::
if ((b1 + b3 >= k) && (a1 + a3 <= w)) flag = 1;
flag değişkenine
bağlı olarak yedi koşulun hepsini denedikten sonra cevabı
yazdırın.
Algoritma gerçekleştirme
Öğrencilerin
çadırlara mümkün olan bütün yerleştirme
yöntemlerini araştırın.
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");