Problem Link : Prime Query
Category : Math
Contest : January Circuits '24
#include "bits/stdc++.h"
using namespace std;
#define int long long int
#define endl '\n'
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
cout.precision(12);
bool FILEIO = true; string FILE = "in.txt";
if (FILEIO and fopen(FILE.c_str(), "r")) {
freopen(FILE.c_str(), "r", stdin);
}
int tc;
cin >> tc;
for (int tcase = 1; tcase <= tc; tcase++) {
int n;
cin >> n;
vector<int> arr(n + 1);
vector<vector<int>> cumsum(n + 1, vector<int>(2));
for (int i = 1; i <= n; i++) {
cin >> arr[i];
for (int j = 0; j < 2; j++) {
cumsum[i][j] = cumsum[i - 1][j] + (arr[i] == j);
}
}
int q;
cin >> q;
while (q--) {
int l, r;
cin >> l >> r;
int zeros = cumsum[r][0] - cumsum[l - 1][0];
int ones = cumsum[r][1] - cumsum[l - 1][1];
int len = r - l + 1;
int ans = len * (len - 1) / 2 - (zeros * ones);
ans -= zeros * (zeros - 1) / 2;
cout << ans << endl;
}
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.