Can someone explain this to me in a little bit easier way?
Read both my answers there- https://discuss.codechef.com/questions/91459/explaniation-for-the-salary-editorial?page=1#91462
Can anyone pls tell me how to optimise this code : https://www.codechef.com/viewsolution/16553743
I am using Merge Sort AFAIK its the best sorting algorithm for time complexity but still Code Chef compiler says time limit exceeded. Kindly help me out in optimising it !
in the given test case
3
1 2 3
can i can do it in 2 steps?
by stopping 3 for the first
2 3 3
and now stopping 2 and 3 we get
3 3 3
@Vartult: You can’t stop 2 numbers at a time according to the question,“choose some worker and increase by 1 salary of each worker, except the salary of the chosen worker”.Here it is given as worker and not as workers. So 2 3 3 >>> 3 4 3 >>> 4 4 4
#include
#include<stdio.h>
#include<conio.h>
using namespace std;
int main()
{
int t,n,a[100],small=10001,sum=0,tot_sum=0;
cin>>t;
for(int i=0;i<t;i++)
{
cin>>n;
for(int j=0;j<n;j++)
{
cin>>a[j];
if(small>a[j])
{
small=a[j];
}
}
for(int k=0;k<n;k++)
{
sum=a[k]-small;
tot_sum+=sum;
}
cout<<tot_sum;
}
}
…
Its output is correct …why it is not getting accepted
here is my approach using binary_search!
def main():
#codechef question SALARY
t = input()
t = int(t)
while t > 0:
n = input()
n = int(n)
val = list(map(int, input().split(" ")))
initial_sum = sum(val)
min_value = min(val)
left = 0
right = 10000000000
while left <= right:
mid = (left + right) // 2
may_be = initial_sum + (mid * (n-1))
mean = may_be / n
diff = mean - min_value
if diff == mid:
break
elif diff < mid:
right = mid - 1
else:
left = mid + 1
print(mid)
t -= 1
if name == ‘main’:
main()
Can anyone please tell me the derivation of that formula?
I am getting correct ans for my test case. But codechef compiler is giving time sigtstp error.
int T,N,moves,minW;
long sum = 0;
cin >> T;
for(int t=0; t<T; t++)
{
cin >> N;
vector<int> W(N);
for(int i=0; i<N; i++)
{
cin >> W[i];
sum += W[i];
}
minW = *min_element(W.begin(),W.end());
moves= sum -N*minW;
cout <<moves << endl;
}
return 0;
}