In this HackerEarth Array and good pairs problem solution You are given an array A of length N. A pair (a,b) is considered good if the following criterion is fulfilled:
Consider the decimal representation of a and b. a has digits a1,a2,…,ak1 and b has digits b1,b2,…,bk1. (a,b) is good only if there is no index y (1 <= y <= k) such that ay and by are non-zero elements.
You are required to process Q queries where each having one of the following forms:
- i x: Change the ith index to x in the array
- l r: Consider all the pairs (i, j) such that l <= i <= j <= r such that (ai,aj) is a good pair and add ai pi aj to the answer.
HackerEarth Array and good pairs problem solution.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 3e5 + 14;
struct Node{
bool c[2];
int cnt, x;
Node(){
c[1] = 1;
}
Node operator +(Node &o){
Node r;
r.cnt = cnt + o.cnt;
for(int i = 0; i < 2; i++)
r.c[i] = c[ o.c[i] ];
return r;
}
} seg[maxn << 2];
struct Q{
int n, q;
int main(){
ios::sync_with_stdio(0), cin.tie(0);
cin >> q;
for(int i = 0; i < q; i++){
int t, k;
cin >> t >> k;
if(k == 3){
}
}
}