What is the issue with the code? quetion link https://www.codechef.com/problems/AVG

include
using namespace std;
int main() {
int t;
cin >> t;
while(t>0){
int n,k,v;
cin >>n >>k >>v;
int arr[n],sum=0;
for(int i=0;i<n;i++){
cin >> arr[i];
sum += arr[i];
}
float a = (float)(v*(n+k) - sum)/k;
if( a == int(a) && a > 0) {
cout << a << endl;
}else{
cout << -1 << endl;
}
t–;
}
}

@ankush86
U are getting integer overflow issue.
I have fixed it in your code .

#include<bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while(t>0){
long long int n,k,v;
cin >>n >>k >>v;
long long int arr[n],sum=0;
for(int i=0;i<n;i++){
cin >> arr[i];
sum += arr[i];
}

long long int a=(v*(n+k))-sum;
if(a%k==0&&a>0) {
cout << a/k << endl;
}else{
cout << -1 << endl;
}
t--;
}
}

1 Like

Well, there are some logical error with your code, here is the correct code that you can try, it may resolve your problem.

#include <iostream>
using namespace std;

int main() {
    int t;
    cin >> t;

    while (t > 0) {
        int n, k, v;
        cin >> n >> k >> v;
        int arr[n], sum = 0;

        for (int i = 0; i < n; i++) {
            cin >> arr[i];
            sum += arr[i];
        }

        float a = (float)(v * (n + k) - sum) / k;

        if (a == int(a) && a > 0) {
            cout << a << endl;
        } else {
            cout << -1 << endl;
        }

        t--; // Corrected decrement
    }

    return 0;
}

Thanks