A1764.最大价值

入门

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

二进制字符串是一个仅由字符 0 和字符 1 组成的字符串。

对于一个包含 xx 个字符 0yy 个字符 1ss 的非空子串,将其价值定义为:

  • 如果 x>0x > 0 并且 y>0y > 0value=xyvalue = x * y
  • 如果 x>0x > 0 并且 y=0y = 0value=xxvalue = x * x
  • 如果 x=0x = 0 并且 y>0y > 0value=yyvalue = y * y

给定长度为 nn 的二进制字符串 ss,求出其所有非空子串中的最大价值。

输入格式

每个测试由多个测试用例组成。

第一行包含一个整数 TT (1T1001 \le T \le 100) — 测试用例的数量。

每个测试用例的第一行包含一个整数 nn (1n1×1051 \le n \le 1 \times 10^5) — 表示字符串的长度.

每个测试用例的第二行包含一个长度为 nn 的二进制字符串ss

输出格式

对于每个测试用例,打印一个整数——表示 ss 所有非空子串中的最大价值。

输入输出样例

  • 输入#1

    6
    5
    11100
    7
    1100110
    6
    011110
    7
    1001010
    4
    1000
    1
    0

    输出#1

    9
    12
    16
    12
    9
    1

说明/提示

在第一个测试用例中,我们可以取一个子串 111。 它包含 33 个字符 100 个字符 0。所以最大价值为 99

在第二个测试用例中,我们可以取整个字符串。 它包含 44 个字符 133 个字符 0。所以最大价值为 1212

在第三个测试用例中,我们可以取一个子串 1111。它的最大价值为 1616

在第四个测试用例中,我们可以取整个字符串,它的最大价值为 1212

在第五个测试用例中,我们可以取一个子串 000。它的最大价值为 99

第六个测试用例,我们只能取子串 0 。它的最大价值为 11

首页