Etik ve Hedge devasa bir kulenin zemin katındalar.
Enerji bariyerleri görevlerinin ikinci hedefleri olan
Yaradılış Düğümü'ne ulaşmalarına engel oluyor.
Kuleye tırmanıp ona ulaşmak için Etik üç enerji akımı kullanmalı.
İleri adımını atar atmaz bir zamanlayıcı 60 saniyeden geri saymaya başlayacak.
Odanın arkasında, aralarında enerji tutabilen
görünmez kulelerden oluşan bir havza var.
Bir dakika sonra bir enerji seli yukarıdan boşalacak
önden veya arkadan taşmalarına engel olan güç alanı ile birlikte
her seferinde bir birimi dolduracak.
60 durgun saniye boyunca Etik ve Hedge,
tam olarak kaç tane enerji biriminin düşeceğine karar vermeli.
Üç zorluğun her biri için
havzanın tam olarak dolması için gerekli miktarı belirlemeliler.
Eğer başarırlarsa enerji onları daha yukarı çıkaracak.
Fakat miktarı yanlış belirlerse enerji kaldırması sona erer
ve yere düşerler.
Duvarlardaki şekiller bazı örnekleri gösteriyor.
Bu düzenleme tam olarak iki birim enerji kaplayacak.
Bu düzenleme 4 tane kaplayacak, 3'ü burada 1'i burada.
Şu da 4 tane kaplar
çünkü sağdaki herhangi bir enerji dökülür.
Bu enerji, sadece onu tutacak bir boşluk olmadığı zaman
taşacağı şekilde yağacak.
Hedge tek seferde sadece bir kulenin bloklarını görünür kılıp
uzunluğunu ölçebilir ama tüm yapıya tek seferde bakamaz.
Etik her bir havzanın tam tamına ne kadar enerji tutabileceğini
çözmesi için Hedge'i nasıl programlayabilir?
Kendiniz çözmek için şimdi durdurun.
Neler olup bittiğini anlamanın bir yolu:
her boş hücre
sadece eninde sonunda solunda
ya da sağında bir duvar varsa enerjiyi tutacak.
Ancak Hedge'in her bir hücreyi kontrol etmesi çok zaman alır.
Peki eğer tek seferde bir blok sütunu kontrol ederse ne olur?
Örneğin kaç enerji birimi bunu tutabilir?
Kendiniz çözmek için şimdi durdurun.
Hadi örneğimize bakarak sorunu inceleyelim.
Burada 5 blok sütun var.
En sondaki enerji tutamaz çünkü ondan daha yüksek bir şey yok.
2 tane 4'lü bloğun arasında sıkışıp kalacakları için
2. yığının üzerinde 3 birim bulundurabilir.
Enerjinin düzleyeceği yüksekliği alarak -4 ve yığının yüksekliğini çıkarıyoruz,
bu da 4 eksi 1 olur- 3 birim elde ediyoruz.
3. yığın benzer. 4 solda, 4 sağda ve yüksekliği 3.
Yani 4 eksi 3 eşittir 1 birim tutacak.
4. ve 5. yığının sağ tarafında onlardan yüksek bir şey yok
dolayısıyla enerji tutamazlar.
Bu fikri bir algoritmaya uyarlayabiliriz.
Her sütunu tek tek referans alın,
Hedge teker teker yığınların solunu kontrol ederek en uzun olanı bulabilir,
sağlarına bakarak da en uzunlarını bulabilir
ve ikisinden küçük olanı enerjinin dolacağı sınır olarak alabilir.
Eğer sonuç söz konusu sütundan daha yüksekse,
asıl sütunun yüksekliğinden çıkar.
Böylece sonuç, o sütunun tutabileceği birim sayısını verecektir.
Söz konusu sütunun seviyesine eşit ya da seviyesinin altındaysa
enerji dökülecektir.
Hedge bunu tüm havzaya, en sol sütundan başlayıp
sağa doğru teker teker gidecek şekilde uygulayabilir.
Her sütun için aynı adımları tekrarlayacak; en uzun için sola bakacak,
aynısını sağ tarafa yapacak, küçük olanın yüksekliğini alacak,
asıl sütunun yüksekliğini çıkaracak
ve o sayı pozitifse genel toplamı arttıracak.
Döngüsü sütun sayısınca tekrar edecek.
Bu işe yarar fakat geniş bir havza için çok zaman alır.
Her adımda Hedge sağa sola bakıyor.
Eğer N tane yığın varsa, N tane yığına N zamanda bakacaktır.
Daha hızlı bir yol var mı?
Bir zaman kazandırıcı: başka bir şey yapmadan önce
Hedge soldan başlayabilir
ve en uzun yığının hangisi olduğunun çetelesini tutabilir.
Bu 2, ilki daha uzun olduğu için tekrar 2,
sonra 4, 4, 4 şeklinde olacaktır.
En sağdaki yığınlardan hangisinin en uzun olduğunu
sağdan sola 1, 3, 4, 4, 4 şeklinde giderek bulabilir.
Sonunda belleğinde şöyle bir tablo olacak.
Şimdi her yığının üzerinde ne kadar enerji olacağını hesaplamak için
Hedge bir önceki denklemin aynısıyla bir geçiş daha yapabilir:
kaydedilen sağ ve sol değerlerden en küçüğünü al,
mevcut kule yüksekliğinden çıkar.
N tane yığına N kere bakmaktansa N yığına sadece 3 kez bakacak,
buna doğrusal zaman denir.
Çözümü daha da iyileştirmenin yolları var
fakat kahramanlarımız için bu kadarı yeterli.
Etik ve Hedge bir olarak çalışıyor.
İlk akış çantada keklik ve kulede yükseliyorlar.
İkincisi biraz daha zor.
Üçüncüsü düzinelerce blok yığınından oluştuğu için oldukça geniş.
Geri sayım sıfıra yaklaşıyor ama Etik'in programı hızlı.
Çarkı tam zamanında oynatıyor
ve enerji onları Yaradılış Düğümü'ne yükseltiyor.
İlki gibi bir görüş yansıtıyor: geçen yılların anıları.
Dünya makinesi her şeyi değiştirdi
ve robotbilim mühendisliği amiri olan Etik
gördüklerinden dolayı tasalandı.
Bradbarrier insanları içeride tutmak için yükseldiğinde,
bir şeylerin cidden yanlış olduğunu biliyordu.
Bundan dolayı üç eseri insanların gücünü,
yaratıcılığını ve hafızasını yerine getirecek özellikte yarattı.
Sonra onları üç topluluğa kaçırdı.
İnsanlara nasıl kullanılacaklarını açıklayamadan
hükümet çabasını keşfetti,
onu ve diğer programcıları tutuklaması için botlar gönderdi.
Etik dünya makinesini en son, eski cihazı cehalet kuvvetlerinden
korumak için devasa bir labirente kapatacak
bir robot yaratmak için kullandı.
Adını Hedge koydu.
Birden bire enerji asansörü titriyor ve düşüyor.