TBD Genç Ankara - Ödüllü Programlama Sorusu 3

(Bu soru TBD Genç Ankara Mayıs 2010 bülteninde yayımlanmıştır.)

Soru 3: Evden Eve Nakliyat

Problem
Ankara'da üniversite okumakta olan Uğur, yeni bir eve taşınmak istemektedir. Fakat eşyalarını toplarken kamyonu ne kadar az doldurursa nakliyata o kadar az bir ücret ödemektedir. Bu yüzden Uğur'un kolilerini, hiçbir koli bir diğeriyle üst üste gelmeden en verimli şekilde yerleştirmesi gerek. Örneğin Uğur'un elinde dört adet koli olsun ve bunları koordinat düzleminde orijinden başlayarak ilk çeyreğe yerleştirmeye çalışsın. (Kolileri yerleştirirken yerçekiminin, diğer fizik kurallarının olmadığını ve sadece iki boyutta yerleştirdiğinizi düşünebilirsiniz. Kutular birbirlerine değmek zorunda da değillerdir, havada da durabilirler. Fakat kutuları yan yatırmak veya herhangi bir açıda döndürmek mümkün değildir.)


Şekil 1

Üstteki Şekil 1'e göre Uğur'un elinde 20x10, 10x10, 5x5 ve 5x1 boyutunda dört kutu var ve Uğur bunları iki farklı şekilde yerleştiriyor (I ve II), bunlar sonucunda ulaştığı en son (x,y) koordinatı iki şekilde de (20,20) oluyor. Bu nedenle Uğur 20+20=40 TL para vermek zorunda kalacak. Fakat bu kutuları yanyana yerleştirseydi daha masraflı olacaktı.

Uğur sizden elindeki kutuları en az yer tutacak şekilde nasıl yerleştirebileceğini öğreneceği bir program istiyor. Programınıza dikdörtgen nesneleri, dikdörtgenlerin kesişip kesişmediğini bulan metod, bir noktada bir koli bulunup bulunmadığını söyleyen metod, dikdörtgeni belli bir koordinata koyan bir metod, bütün dikdörtgenleri birbirleriyle kontrol edip kesişen olup olmadığını söyleyen metod, bir dikdörtgenin başlangıç koordinatını ve genişlik-yüksekliğini bir satırda ekrana yazdıran bir metod vb. Bir önceki sorudaki gibi hazırladığımız şablonlarda hazır olarak bulunmaktadır.

Kısıtlamalar ve Şablon

Değerlendirme ve Ödüller

Düzeltmeler

Çözümlerin ulaştırılması

Başarılar!

« Ana sayfaya dön