Skip to content
Programming101
Programming101

Learn everything about programming

  • Home
  • CS Subjects
    • IoT – Internet of Things
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programming101
Programming101

Learn everything about programming

HackerEarth Hacker with Team problem solution

YASH PAL, 31 July 2024
In this HackerEarth Hacker with Team problem solution Alex has learnt many new concepts in hacking, and created his own team. He has N people (excluding Alex) in his team, where ith person has individual skill value Si where 1 <= i <= N. They are standing in a particular order, where  person being the leftmost person and Nth person being the rightmost person.
Alex has found a special way to evaluate the contribution done by each person in the team. Contribution done by ith person (Ci) in the team can be calculated as sum of his skill value and the skill values of his K adjacent team members on the left side, where the value of K will be decided by Alex.
In case, there are not enough members on the left side, contribution will be equal to the sum of his skill value and the skill values of all the team members on the left side.
Alternatively,
 Ci = Sigma(i,j=maximum(i-k,1))Sj
Alex can perform 2 types of operations now:
  1. He can write a program to calculate the total contribution done by all the team members in the range of l to r (both inclusive), where contribution of each person will be calculated using value of K decided by him.
  2. He can ask any person to change his skill value to X.
Being a great hacker, he is busy with other tasks, and needs your help in performing above operations.
HackerEarth Hacker with Team problem solution

HackerEarth Hacker with Team problem solution.

#include <cassert>
#include <cstdio>

int const N = 1234567;

void add(long long *f, int x, long long y) {
for (int i = x; i < N; i |= i + 1) {
f[i] += y;
}
}

long long get(long long *f, int x) {
long long ret = 0;
for (int i = x; i >= 0; i = (i & (i + 1)) - 1) {
ret += f[i];
}
return ret;
}

long long f[N], h[N];
int a[N];
int n;

long long getans(int x, int k) {
long long ans = get(f, x - k) * (long long) k;
ans += get(h, x) - get(h, x - k);
ans -= (get(f, x) - get(f, x - k)) * ((n - x - 1) - 1);
return ans;
}

int main() {
int q;
assert(2 == scanf("%d%d", &n, &q));
for (int i = 0; i < n; i++) {
assert(1 == scanf("%d", a + i));
add(f, i, a[i]);
add(h, i, (long long) a[i] * (n - i - 1));
}
for (int i = 0; i < q; i++) {
int op;
assert(scanf("%d", &op) == 1);
if (op == 1) {
int l, r, k;
assert(3 == scanf("%d%d%d", &l, &r, &k));
--l;
++k;
printf("%lldn", getans(r - 1, k) - getans(l - 1, k));
} else {
int x, y;
assert(2 == scanf("%d%d", &x, &y));
--x;
add(f, x, y - a[x]);
add(h, x, (long long) (y - a[x]) * (n - x - 1));
a[x] = y;
}
}
}
coding problems

Post navigation

Previous post
Next post
  • How AI Is Revolutionizing Personalized Learning in Schools
  • GTA 5 is the Game of the Year for 2024 and 2025
  • Hackerrank Day 5 loops 30 days of code solution
  • Hackerrank Day 6 Lets Review 30 days of code solution
  • Hackerrank Day 14 scope 30 days of code solution
©2025 Programming101 | WordPress Theme by SuperbThemes