羊工八刀
题号:NC231649
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

阿笠博士提问时间到,公园里有一条路,路上有若干个嫌疑人,现在已知每个嫌疑人的位置,阿笠博士想知道任意两个嫌疑人之间距离的平方和。阿里博士想问问在夏威夷学过 CS 的你能否解决这个问题。
注意:如果只有一个嫌疑人,输出 0

输入描述:

第一行输入一个  ,表示测试样例的个数。
对于每个测试样例:
第一行输入一个 n ,表示公园里的这条路的长度。
接下来的一行输入一行 01 字符串,1 表示该点有一个嫌疑人。

输出描述:

每个测试样例输出一个答案,任意两个嫌疑人之间距离的平方和。由于答案过大,需要对  取模
示例1

输入

复制
3
3
101
4
1011
3
001

输出

复制
4
14
0

说明

该样例中的第二个:1011=> (2^2 + 3^2 +1^2 )\mod 1000000007= 14