Toroidal olarak sarılı bir W by H kareler ızgarası düşünün . Öğeler ızgaraya aşağıdaki gibi yerleştirilir.
İlk öğe herhangi bir kareye yerleştirilebilir, ancak sonraki öğeler önceki herhangi bir öğenin ( R aralığı Von Neumann mahallesi olarak da bilinir) Manhattan mesafesi R içinde olmamalıdır . Konumları dikkatlice seçmek, geçerli konumlar olmadan çok sayıda öğenin ızgaraya yerleştirilmesine izin verir. Ancak bunun yerine tam tersi düşünün: Yerleştirilebilecek ve başka geçerli pozisyon bırakmayacak en az öğe sayısı nedir?
İşte bir yarıçap 5 hariç tutma bölgesi:
İşte bir başka yarıçap 5 hariç tutma bölgesi, bu sefer kenarlara yakın, böylece sarma davranışı belirgindir:
Giriş
Üç tamsayı:
- W : ızgaranın genişliği (pozitif tamsayı)
- H : ızgara yüksekliği (pozitif tamsayı)
- R : hariç tutma bölgesinin yarıçapı (negatif olmayan tam sayı)
Çıktı
Geçerli yerleşimleri engellemek için yerleştirilebilecek en az sayıda öğe olan bir tamsayı N.
ayrıntılar
- Sıfır yarıçapı 1 kare (öğenin yerleştirildiği alan) hariç tutma bölgesi verir.
- N yarıçapı N dikey adımda ulaşılabilen bölgeyi hariç tutar (kenarların toroidal olarak sarıldığını unutmayın).
Kodunuzun önemsiz R = 0 durumunda çalışması gerekir , ancak W = 0 veya H = 0 için çalışması gerekmez .
Kodunuz ayrıca R > W veya R > H'nin bulunduğu durumla da ilgili olmalıdır .
Zaman sınırı ve test senaryoları
Kodunuz tüm test senaryolarıyla ilgilenebilmeli ve her test senaryosu 5 dakika içinde tamamlanmalıdır. Bu kolay olmalıdır (örnek JavaScript çözümünün her test vakası için birkaç saniye sürmesi gerekir). Zaman sınırı esas olarak aşırı kaba kuvvet yaklaşımını dışlamaktır. Örnek yaklaşım hala oldukça kaba kuvvettir.
Kodunuz bir makinede 5 dakika içinde tamamlanır ancak başka bir makinede tamamlanmazsa, yeterince yakın olacaktır.
Form girişlerindeki test senaryoları: asW H R : N
5 4 4 : 1
5 4 3 : 2
5 4 2 : 2
5 4 1 : 5
7 5 5 : 1
7 5 4 : 2
7 5 3 : 2
7 5 2 : 4
8 8 8 : 1
8 8 7 : 2
8 8 6 : 2
8 8 5 : 2
8 8 4 : 2
8 8 3 : 4
7 6 4 : 2
7 6 2 : 4
11 7 4 : 3
11 9 4 : 4
13 13 6 : 3
11 11 5 : 3
15 14 7 : 2
16 16 8 : 2
Fikirlerle görselleştirmeye ve oynamaya yardımcı olan snippet
Örnek (çözülmemiş) çözelti
Küçük çıktılar için sadece bir örnek (genişlik ve yükseklikten çok daha küçük olmayan yarıçaptan kaynaklanır). Herhangi bir test vakasını halledebilir, ancak zaman aşımına uğrar ve daha büyük vakalardan vazgeçer.