My issue
include <stdio.h>
int main() {
int n, k, count = 0;
scanf(“%d %d”, &n, &k);
int arr[n];
for (int i = 0; i < n; i++) {
scanf(“%d”, &arr[i]);
}
int prefix_sum_count[10001] = {0};
prefix_sum_count[0] = 1;
int current_prefix_sum = 0;
for (int i = 0; i < n; i++) {
current_prefix_sum += arr[i];
if (current_prefix_sum - k >= 0) {
count += prefix_sum_count[current_prefix_sum - k];
}
prefix_sum_count[current_prefix_sum]++;
}
printf("%d\n", count);
return 0;
}
My code
#include <stdio.h>
int main() {
int n, k, count = 0;
scanf("%d %d", &n, &k);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int prefix_sum_count[10001] = {0};
prefix_sum_count[0] = 1;
int current_prefix_sum = 0;
for (int i = 0; i < n; i++) {
current_prefix_sum += arr[i];
if (current_prefix_sum - k >= 0) {
count += prefix_sum_count[current_prefix_sum - k];
}
prefix_sum_count[current_prefix_sum]++;
}
printf("%d\n", count);
return 0;
}
Learning course: BCS301: Data structures
Problem Link: https://www.codechef.com/learn/course/abesit-dsa/ABESITDS07/problems/PREFPRO3