t = int(input())
for _ in range(t):
n, q = map(int, input().split())
final_sum = 0
num_even = 0
num_odd = 0
for x in (input().split()):
x = int(x)
final_sum += x
if x % 2:
num_odd += 1
num_even = n - num_odd
for i in range(q):
type, to_add = map(int, input().split())
if type == 0:
final_sum += to_add * num_even
if to_add % 2:
num_odd += num_even
num_even = 0
else:
final_sum += to_add * num_odd
if to_add % 2:
num_even += num_odd
num_odd = 0
print(final_sum)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin >> t;
while(t--)
{
int n, q, ch = 0, nch = 0;
long long sum = 0;
cin >> n >> q;
vector<int> a;
vector<int> type;
vector<int> k;
for(int i = 0; i < n; i++)
{
int x;
cin >> x;
a.push_back(x);
sum += x;
}
for(int i = 0; i < q; i++)
{
int x, y;
cin >> x >> y;
type.push_back(x);
k.push_back(y);
}
for(int i = 0; i < n; i++)
{
if (a[i] % 2 == 0) ch++;
else nch++;
}
for(int i = 0; i < q; i++)
{
if(type[i] == 1) sum += nch * k[i];
else sum += ch * k[i];
if(k[i] % 2 != 0 && type[i] == 0) {nch += ch; ch = 0;}
if(k[i] % 2 != 0 && type[i] == 1) {ch += nch; nch = 0;}
cout << sum << endl;
}
}
}
1476E - Pattern Matching | 1107A - Digits Sequence Dividing |
1348A - Phoenix and Balance | 1343B - Balanced Array |
1186A - Vus the Cossack and a Contest | 1494A - ABC String |
1606A - AB Balance | 1658C - Shinju and the Lost Permutation |
1547C - Pair Programming | 550A - Two Substrings |
797B - Odd sum | 1093A - Dice Rolling |
1360B - Honest Coach | 1399C - Boats Competition |
1609C - Complex Market Analysis | 1657E - Star MST |
1143B - Nirvana | 1285A - Mezo Playing Zoma |
919B - Perfect Number | 894A - QAQ |
1551A - Polycarp and Coins | 313A - Ilya and Bank Account |
1469A - Regular Bracket Sequence | 919C - Seat Arrangements |
1634A - Reverse and Concatenate | 1619C - Wrong Addition |
1437A - Marketing Scheme | 1473B - String LCM |
1374A - Required Remainder | 1265E - Beautiful Mirrors |