McApp

Time limit: 0.9s Memory limit: 128MB Input: Output:

Cerință

Se dau kk, o matrice matmat de dimensiuni k×kk \times k și un xx. Definim f(cnt,n)f(cnt, n), unde cntcnt și nn sunt numere naturale astfel:

  • Dacă n=0,f(cnt,n)=0n=0, f(cnt, n)=0;
  • Altfel, se va considera lsblsb-ul lui nn. Fie acesta bb. Atunci, f(cnt,n)=mat(cnt,b)cnt+f(cnt+1,n2b)f(cnt, n)=mat_{(cnt, b)} \cdot cnt + f(cnt+1, n-2^b).

Numim lsblsb-ul unui număr natural xx astfel:

  • Numărul natural minim bb, b0b \geq 0, astfel încât 2bn2^b \mid n, iar 2b+1n2^{b+1} \nmid n

Să se afișeze f(0,i)f(0, i) maxim, pentru 0ix0 \leq i \leq x.

Atenție! Pentru că xx nu încape într-un long long și nici într-un __int128, ți se oferă direct reprezentarea lui în baza 2, sub forma unui șir de exact kk cifre binare (se garantează că xx are cel mult kk cifre în această reprezentare). De asemenea, prima cifră ar putea fi 0 (dacă xx are k1k-1 sau mai puține cifre în baza 22).

Date de intrare

Pe prima linie se găsește un numar întreg, kk. Pe a doua linie se va găsi reprezentarea lui xx în baza 22. Pe urmatoarele kk linii se vor afla cate kk valori, a j+1j + 1-a valoare de pe a i+1i + 1-a linie reprezentând mat(i,j)mat_{(i, j)}, pentru oricare 0i,j<k0 \leq i, j <k.

Date de ieșire

Pe prima linie se va găsi un singur număr întreg, maximul valorilor f(0,i),0ixf(0, i), 0 \leq i \leq x.

Restricții și precizări

  • 1k2 0001 \leq k \leq 2 \ 000;
  • 0x<2k0 \leq x < 2^k;
  • Se garantează faptul că reprezentarea în baza 22 a lui xx dată are exact kk biți;
  • 1mat(i,j)1091 \leq mat_{(i, j)} \leq 10^9, pentru oricare 0i,j<k0 \leq i, j < k;
# Punctaj Restricții
1 10 mat(i,j)=1mat_{(i, j)}=1, 0i,j<N0 \leq i, j < N
2 8 k20k \leq 20
3 12 x=2k1x=2^k-1
4 23 k50k \leq 50
5 23 k500k \leq 500
6 24 Fără alte restricții

Exemplul 1

stdin

3
111
1 1 1
1 7 10
1 9 11

stdout

29

Explicație

Tabelul valorilor f(0,i),0i7f(0, i), 0 \leq i \leq 7 este:

  • f(0,0)=0f(0, 0)=0
  • f(0,1)=0f(0, 1)=0
  • f(0,2)=0f(0, 2)=0
  • f(0,3)=7f(0, 3)=7
  • f(0,4)=0f(0, 4)=0
  • f(0,5)=10f(0, 5)=10
  • f(0,6)=10f(0, 6)=10
  • f(0,7)=29f(0, 7)=29

Maximul dintre acestea este 2929.

Exemplul 2

stdin

3
101
1 1 1
1 7 10
1 9 11

stdout

10

Explicație

Tabelul valorilor f(0,i),0i7f(0, i), 0 \leq i \leq 7 este cel de mai sus. Maximul valorilor pentru 0i50 \leq i \leq 5 este 1010.

Exemplul 3

stdin

6
001101
1014 199 19 919 6584 1812
1823 129 22 43949 49404 1088
19383347 489747 4918 43893 340893 3498
19877 39390 5759 345678 4747 3264
144 74 44410 14 7989 1089
441 94 141 41 9 898911

stdout

87915

Explicație

Te descurci singur, sper...

Log in or sign up to be able to send submissions!