We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
// please tell if there is some minute error, I am getting very very close answers
include
using namespace std ;
// returns the number of steps needed to make value reach the target
int steps(int target,int value)
{
long steps = 0;
long gap = value - target ;
if(!gap)
return 0;
steps += gap/5 ;
gap = gap % 5 ;
steps += gap/3 ;
gap = gap% 3;
steps += gap/1 ;
return steps ;
}
int main()
{
int testcases ;
cin >> testcases ;
for(int i=0;i<testcases;i++)
{
int n ; // number of collegues
cin >> n ;
int arr[n] ; int min = 9999;
for(int i=0;i<n;i++)
{
int chocs;
cin >>chocs ;
arr[i] = chocs ;
min = (min<chocs)?min:chocs ; // gets the minimum number out of the input elements
}
// soln[i][j] means steps needed to make elements till i th position reach to min - j .
long soln[n][5] ;
for(int i=0;i<5;i++)
{
soln[0][i] = steps(min - i , arr[0]) ;
}
for(int i=1 ; i<n ;i++)
{
for(int j=0;j<5;j++)
{
soln[i][j] = soln[i-1][j] + steps( min - j , arr[i]) ; // may be here is the issue
}
}
long answer = 99999 ;
for(int i=0;i<5;i++)
{
answer = (answer > soln[n-1][i])?soln[n-1][i]:answer ;
}
cout << answer << "\n" ;
}
}
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Equal
You are viewing a single comment's thread. Return to all comments →
// please tell if there is some minute error, I am getting very very close answers
include
using namespace std ;
// returns the number of steps needed to make value reach the target int steps(int target,int value) { long steps = 0; long gap = value - target ; if(!gap) return 0;
}
int main() { int testcases ; cin >> testcases ;
}