Maximum Production (EITA) Solution — Codechef July Long Challenge

Anubhav Mishra
2 min readJul 12, 2021

Problem Statement

Chefland has 7 days in a week. Chef is very conscious about his work done during the week.

There are two ways he can spend his energy during the week. The first way is to do x units of work every day and the second way is to do y (>x) units of work for the first dd (<7) days and to do z (<x) units of work thereafter since he will get tired of working more in the initial few days.

Find the maximum amount of work he can do during the week if he is free to choose either of the two strategies.

Input

  • The first line contains an integer T, the number of test cases. Then the test cases follow.
  • Each test case contains a single line of input, four integers dd, x, y, z.

Output

For each testcase, output in a single line the answer to the problem.

Constraints

  • 1≤T≤5⋅10³
  • 1≤d<7
  • 1≤z<x<y≤18

Subtasks

Subtask #1 (100 points): Original constraints

Sample Input

3
1 2 3 1
6 2 3 1
1 2 8 1

Sample Output

14
19
14

Explanation

Test Case 1: Using the first strategy, Chef does 2⋅7=14 units of work and using the second strategy Chef does 3⋅1+1⋅6=9 units of work. So the maximum amount of work that Chef can do is max(14,9)=14 units by using the first strategy.

Test Case 2: Using the first strategy, Chef does 2⋅7=14 units of work and using the second strategy Chef does 3⋅6+1⋅1=19 units of work. So the maximum amount of work that Chef can do is max(14,19)=19 units by using the second strategy.

Code (Solution)

The code has been implemented in Java

/* package codechef; // don't place package name! */import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();

while(t-- > 0){
long d = sc.nextLong();
long x = sc.nextLong();
long y = sc.nextLong();
long z = sc.nextLong();

System.out.println(Math.max(x*7,(y*d+(z*(7-d)))));

}
}
}

Hope you would have liked the article. Please give 50 claps to this article and follow me for more future programming related blogs.

References

https://www.codechef.com/JULY21C/problems/EITA

(Video Editorial Link For Better Explanation)

--

--

Anubhav Mishra

Software Engineer , Having my degree B.Tech in Information Technology from BVCOE, New Delhi. Love new Technologies. Electronic Dance Music is love.