Bu kod golf. Kazanan, en az bayt içeren geçerli koddur.
Meydan okuma
M ve N girişleri , dikdörtgen bir kareler ızgarasının genişliği ve yüksekliği göz önüne alındığında , aşağıdakileri karşılayan bir çokgen çıktı:
- Çokgen kenarlar sadece kare kenarlardan oluşur: çapraz kenarlar yoktur - hepsi dikey veya yataydır.
- Çokgenin delikleri yoktur: Çokgenin dışındaki her kareye, dikdörtgenin dış sınırındaki çokgenin dışındaki bir kareden başlayarak, çokgenin dışındaki kareler üzerinde dikey adımlar ile ulaşılabilir.
- Çokgenin kendiliğinden kesişmesi yoktur: bir tepe noktasında toplanan kare kenarlardan en fazla 2 tanesi çokgen çevresinin bir parçası olabilir.
- Çokgen bağlanır: Çokgendeki herhangi bir kareye, çokgenin içinde kalan dikey adımlar aracılığıyla çokgendeki diğer herhangi bir kareden erişilebilir olmalıdır.
- Poligon mümkün olan en yüksek çevreye sahiptir: aşağıda gösterilen formüle göre.
Kodunuz 1 ile 255 arasında M ve N için çalışmalıdır .
Maksimum çevre için formül
Buradaki zorluk, maksimum çevreye sahip olan çokgenlerin en golfçülüğünü bulmak. Maksimum çevrenin kendisi her zaman aşağıdaki formülle tanımlanır:
Bu doğrudur çünkü maksimum çevre için her kare tepe noktası çevre üzerinde olmalıdır. Tek sayıda köşe için bu mümkün değildir ve elde edilebilecek en iyi nokta bir köşe daha azdır (çünkü çevre her zaman eşittir).
Çıktı
Şekli, satırsonu ayrılmış karakterlerden oluşan bir dize ( tam olarak M karakterden oluşan N satır ) olarak çıktı. Burada çokgenin dışındaki kareler için boşluk kullanıyorum ve çokgenin içindeki kareler için '#' kullanıyorum, ancak anlamları tüm girdiler için tutarlı olması koşuluyla, görsel olarak farklı iki karakter kullanabilirsiniz.
En fazla bir önde gelen yeni satır ve en fazla bir sondaki yeni satır ekleyebilirsiniz.
İsterseniz , tam olarak N karakterli M satırları çıkarabilir ve bazı girişler için M by N çıkışını ve diğerleri için N by M çıkışını seçebilirsiniz .
Örnekler
Bir delik nedeniyle geçersiz :
###
# #
###
Kavşak (çapraz olarak dokunma - çevre üzerinde 4 kare kenarı olan bir tepe noktası) ve bu arada bir delik nedeniyle geçersiz :
##
# #
###
Bağlantısının kesilmesi nedeniyle geçersiz :
#
# #
#
Maksimum çevre için geçerli çokgen:
# #
# #
###
Kredi
Başlangıçta maksimum çevre değerinin ne kadar hızlı hesaplanabileceğini hafife aldım ve sadece bu değeri çıktı olarak isteyecektim. Keyifli N ve M için maksimum çevreyi nasıl çalıştıracaklarını açıklayan ve bunu birden fazla cevap sürecek bir zorluğa dönüştürmeye yardımcı olan sohbetteki harika yardımcı insanlar sayesinde ...
Özellikle:
Sparr , Zgarb , feersum , jimmy23013 .