代码如下
#include <bits/stdc++.h>
using namespace std;
#define N 100000005
long long l[N];
int biao[15] = {0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 0, 0, 0, 0};
int main() {
long long T, a;
long long n, d, m = 1;
cin >> T;
for (long long i = 1; i <= T; i++) {
long long sum = 0;
cin >> n;
for (long long j = 1; j <= n; j++) {
cin >> a;
if (a == 1) {
if (sum == 0)
continue;
sum += sum;
m++;
}
if (a == 2) {
cin >> d;
sum += d;
l[m] += d;
}
}
if (sum == 0 ) {
cout << sum << endl;
continue;
}
if (m == 1 && l[1] < 10 ) {
for (long long j = 1; j <= 9; j++) {
if (l[1] == j)
cout << biao[j];
}
continue;
}
for (long long j = 1; j <= m / 2; j++) {
long long num1;
num1 = l[j];
l[j] = l[m + 1 - j];
l[m + 1 - j] = num1;
}
long long num = 1;
while (--m) {
l[num + 1] += l[num] / 2;
l[num] = l[num] % 2;
num++;
if (l[num] > 1 && m == 1)
m++;
}
for (int j = num; j >= 1; j--)
{
cout << l[j] ;
l[j] = 0;
}
m = 1;
cout << endl;
sum = 0;
}
return 0;
}