The program must accept the radii of N bottles as the input. Once a bottle is enclosed inside another bottle, it ceases to be visible. A bottle X is enclosed inside another bottle Y only if the following conditions are fulfilled.
1) The bottle X itself is not enclosed in another bottle.
2) The bottle Y does not enclose any other bottle.
3) The radius of the bottle X is smaller than bottle Y.
The program must print the minimum number of visible bottles based on the given conditions.
Note: Optimize your logic to avoid Time Limit Exceed error.
Boundary Condition(s):
1 <= N <= 10^5
1 <= Radius of each bottle <= 10^18
Input Format:
The first line contains N.
The second line contains N integers separated by a space.
Output Format:
The first line contains an integer representing the minimum number of visible bottles.
Example Input/Output 1:
Input:
8
2 3 1 1 4 5 5 3
Output:
2
Explanation:
The radii of the given 8 bottles are 2 3 1 1 4 5 5 3.
The 3rd bottle(1) can be kept in the 1st bottle(2). Now there are 7 visible bottles are 2, 3, 1, 4, 5, 5, 3.
Similarly, after performing the following operations, the following will be the corresponding visible bottles.
Operation [Visible bottles]
1 -> 3 [2, 3, 4, 5, 5, 3]
2 -> 3 [3, 4, 5, 5, 3]
3 -> 4 [4, 5, 5, 3]
4 -> 5 [5, 5, 3]
3 -> 5 [5, 5]
Finally, there are 2 bottles that are visible. Hence the output is 2.
1 -> 2 -> 3 -> 4 -> 5
1 -> 3 -> 5
Example Input/Output 2:
Input:
11
1 1 5 5 6 7 8 2 3 4 5
Output:
3
Explanation:
There are 3 bottles that are visible. The one possible way is given below.
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8
1 -> 5
5
a=int(input())
s=1
k={}
for i in list(map(int,input().split())):
if not k.get(i):
k[i]=1
else:
k[i]+=1
s=max(k[i],s)
print(s)ln = list(int(x) for x in input().strip().split())[0]
arr = list(int(x) for x in input().strip().split())
buf = []; arr.sort()
visible_count = 0
for i in range(ln):
flag = True
for j in range(len(buf)):
if arr[i] > buf[j]:
buf[j] = arr[i]
flag = False
break
if flag==True:
buf.append( arr[i] )
visible_count += 1
print( visible_count )import java.util.*;
public class Hello {
public static void main(String[] args) {
//Your Code Here
int n;
Scanner scan=new Scanner(System.in);
n=scan.nextInt();
long arr[]=new long[n];
for(int i=0;i<n;++i)arr[i]=scan.nextLong();
Arrays.sort(arr);
List<Long> list=new ArrayList<>();
list.add(arr[0]);
for(int i=1;i<n;++i){
long top=list.get(0);
long cur=arr[i];
list.add(cur);
if(cur==top)continue;
list.remove(0);
}
System.out.print(list.size());
}
}