M * n boyutunda bir giriş diziniz var. Dizideki her hücre P veya T ile doldurulur. Dizide yapabileceğiniz tek işlem çevirme sütunlarıdır. Bir sütunu çevirdiğinizde, o sütun anahtarındaki tüm hücrelerdeki harfler değişir (P, T ve viceversa olur). Aynı harfe (örneğin PPPP) sahip 'x' satırınız varsa bir puan alırsınız. Diziyi alan ve sonuçta elde edilen dizi mümkün olan en fazla noktaya sahip olacak şekilde bir çözüm (döndürecek sütunlar) döndüren bir algoritma tasarlayın.
Not: En yüksek puanı veren birden fazla çözüm olması durumunda, en az döndürme olan çözümü seçin. Misal:
Giriş Dizisi:
PPTPP
PPTPP
PPTTP
PPPTT
PPPTT
Çıktı:
3
Açıklama:
En yüksek noktaları veren bir çözüm: Flip sütun no. 3
O zaman orijinal dizi şöyle olur:
PPPPP // 1 point
PPPPP // 1 point
PPPTP
PPTTT
PPTTT
//Total: 2 points
Birinin iki puan almak için sütun 4 ve 5'i çevirebileceğini, ancak bunun ek bir çevirmeye ihtiyacı olduğunu unutmayın.
İki boyutlu dizi temsil etmek üzere uygun bir giriş formatını kullanabilir ve aynı zamanda herhangi iki farklı fakat sabit değerler temsil etmek edebilir P
ve T
.
Bu kod golf, yani en kısa cevap (bayt cinsinden) kazanır.