Qruplaşdırma vəzifəsi#1525

Qruplaşdırma vəzifəsi

1 saniyə
128 meqabayt
Çətin

Verilmiş tam ədədlər çoxluğu var. Bu çoxluqdan müxtəlif elementi seçməklə bir qrup təşkil edə bilərsiniz. İki qrup fərqli sayılırlar ki, əgər ən azı bir element mövcuddur ki, o, bir qrupda var, amma digərində yoxdur. Məsələn, əgər çoxluq ədəd a, b, c, d-dən ibarətdirsə və iki element seçmək tələb olunursa, onda ab, ac, ad, bc, bd və bütün düzgün və fərqli qruplardır.

Qruplaşdırma sistemi tam sayılır, əgər verilmiş üçün müxtəlif qrupların sayı maksimumdursa. Bu misalda çoxluq \{ab, ac, ad, bc, bd, cd\} tam qruplaşdırma sistemi təşkil edir.

Bəzi tam qruplaşdırma sistemi üçün onun qiymətini (fitness) aşağıdakı kimi hesablanır:

Yuxarıda verilən misalda, k = 2 üçün qiymət bərabərdir

F_2 = (ab + ac + ad + bc + bd + cd) \bmod\ m

Əgər k = 1 olarsa, onda qiymət bərabərdir

F_1 = (a + b + c + d) \bmod\ m

Sizin vəzifəniz maksimum mümkün qiymət verən tam qruplaşdırma sistemini təyin etməkdir.

Giriş

Hər test iki müsbət tam ədəd n~(2 \le n \le 1000) and m~(1 \le m < 2^{31}) ilə başlayır. Növbəti sətir hər biri -dən böyük olmayan natural ədədi ehtiva edir. Sonuncu test n = m = 0-ı ehtiva edir və işlənmir.

Çıxış

Hər test üçün qruplaşdırma sistemi üçün maksimum mümkün qiyməti ayrıca sətirdə çıxarın.

Nümunələr

Nümunə 1

Loading
Loading