SmartPhone CodeChef Solution

Today we will be solving Smartphone Codechef which is the part of DSA Learning Series.

As you already know that this site does not contain only the Codefchef solutions here, you can also find the solution for other programming problems. I.e. LeetcodeC programsC++ Programs SolutionsPython ProgramsWeb Technology, Data StructuresRDBMS Programs and Java Programs Solutions.

SmartPhone CodeChef Solution
SmartPhone CodeChef Solution

Problem

Zonal Computing Olympiad 2014, 30 Nov 2013

You are developing a smartphone app. You have a list of potential customers for your app. Each customer has a budget and will buy the app at your declared price if and only if the price is less than or equal to the customer’s budget.

You want to fix a price so that the revenue you earn from the app is maximized. Find this maximum possible revenue.

For instance, suppose you have 4 potential customers and their budgets are 30, 20, 53 and 14. In this case, the maximum revenue you can get is 60 .

Input

Line 1 : N, the total number of potential customers.

Lines 2 to N+1: Each line has the budget of a potential customer.

Output 

The output consists of a single integer, the maximum possible revenue you can earn from selling your app.

 Sample Input 1

4
30
20
53
14

Sample Output 1

60

Sample Input 2

5
40
3
65
33
21

Sample Output 2

99

Explanation

Test data

Each customers’ budget is between 1 and 108, inclusive.

Subtask 1 (30 marks) : 1 ≤ N ≤ 5000.

Subtask 2 (70 marks) : 1 ≤ N ≤ 5×105.

Live evaluation data

There are 15 test inputs on the server during the exam. The grouping into subtasks is as follows.

• Subtask 1: Test inputs 0,…,5

• Subtask 2: Test inputs 6,…,14

Note

The answer might not fit in a variable of type int. We recommend that you use variables of type long long to read the input and compute the answer. If you use printf and scanf, you can use %lld for long long.

LinkedIn Skill Assessment Answers

Coursera Quiz Answers

SmartPhone CodeChef Solution 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 n = sc.nextInt();
        long arr[] = new long[n];
        for(int i=0 ; i<n ;i++)
        {
              arr[i]=sc.nextInt();
        }
        Arrays.sort(arr);
            for(int i=0 ; i<n ;i++)
        {
              arr[i]=arr[i]*(n-i);
        }
        Arrays.sort(arr);
        System.out.println(arr[n-1]);
    }
}

SmartPhone CodeChef Solution in CPP

#include<bits/stdc++.h>
using namespace std;
int main()
{
   long long int n;
   cin>>n;
   long long int arr[n];
   for(int i=0;i<n;i++)
   {
       cin>>arr[i];
   }
   sort(arr,arr+n);
   long long int x=0;
   for(int i=0;i<n;i++)
   {
        long long int temp=arr[i]*(n-i);
        if(temp>x){
            x=temp;}
   }
   cout<<x;
}

SmartPhone CodeChef Solution in Python

num = int(input())
l1 = list()
gre = 0
count = num
for i in range(num):
    s = int(input())
    l1.append(s)
l1.sort()
for i in l1:
    ans = count * int(i)
    count = count-1
    if(ans >= gre):
        gre = ans
print(gre)

Disclaimer: The above Problem (SmartPhone CodeChef) is generated by CodeChef but the solution is provided by Chase2learn.This tutorial is only for Educational and Learning purpose.

Finally, we are now, in the end, I just want to conclude some important message for you

Note:- I compile all programs, if there is any case program is not working and showing an error please let me know in the comment section. If you are using adblocker, please disable adblocker because some functions of the site may not work correctly.

Please share our posts on social media platforms and also suggest to your friends to Join Our Groups. Don’t forget to subscribe. 

Leave a Comment