Anda memiliki larik input dengan ukuran m * n. Setiap sel dalam array diisi dengan P atau T. Satu-satunya operasi yang dapat Anda lakukan pada array adalah kolom flip. Ketika Anda membalik kolom, huruf-huruf di semua sel dari kolom itu berganti (P menjadi T dan sebaliknya). Jika Anda memiliki jumlah baris 'x' dengan huruf yang sama (mis. PPPP) maka Anda mendapat poin. Desain algoritma yang mengambil dalam array dan mengembalikan solusi (kolom mana yang flip) sehingga array yang dihasilkan memiliki jumlah poin maksimum yang mungkin.
Catatan: Jika ada beberapa solusi yang menghasilkan skor tertinggi, pilih satu dengan jumlah flips terendah. Contoh:
Input Array:
PPTPP
PPTPP
PPTTP
PPPTT
PPPTT
Keluaran:
3
Penjelasan:
Solusi yang menghasilkan poin tertinggi: Flip kolom no. 3
Maka array aslinya adalah:
PPPPP // 1 point
PPPPP // 1 point
PPPTP
PPTTT
PPTTT
//Total: 2 points
Perhatikan bahwa seseorang juga dapat membalik kolom 4 dan 5 untuk mendapatkan skor dua, tetapi itu membutuhkan flip tambahan.
Anda dapat menggunakan format input yang mudah untuk mewakili array dua dimensi, dan Anda juga dapat dua nilai yang berbeda, tetapi tetap, untuk mewakili PdanT .
Ini kode golf, jadi jawaban tersingkat (dalam byte) menang.