Problem Statement
Vlad enjoys listening to music. He lives in Sam's Town. A few days ago he had a birthday, so his parents gave him a gift: MP3-player! Vlad was the happiest man in the world! Now he can listen his favorite songs whenever he wants!
Vlad built up his own playlist. The playlist consists of N songs, each has a unique positive integer length. Vlad likes all the songs from his playlist, but there is a song, which he likes more than the others. It's named "Uncle Johny".
After creation of the playlist, Vlad decided to sort the songs in increasing order of their lengths. For example, if the lengths of the songs in playlist was {1, 3, 5, 2, 4} after sorting it becomes {1, 2, 3, 4, 5}. Before the sorting, "Uncle Johny" was on K-th position (1-indexing is assumed for the playlist) in the playlist.
Vlad needs your help! He gives you all the information of his playlist. Your task is to find the position of "Uncle Johny" in the sorted playlist.
Input
The first line of the input contains an integer T denoting the number of test cases. The description of T test cases follows.Output
For each test case, output a single line containing the position of "Uncle Johny" in the sorted playlist.Constraints
1 ≤ T ≤ 1000Example
Input: 3 4 1 3 4 2 2 5 1 2 3 9 4 5 5 1 2 3 9 4 1 Output: 3 4 1
Explanation
In the example test there are T=3 test cases.
Test case 1
In the first test case N equals to 4, K equals to 2, A equals to {1, 3, 4, 2}. The answer is 3, because {1, 3, 4, 2} -> {1, 2, 3, 4}. A2 now is on the 3-rd position.
Test case 2
In the second test case N equals to 5, K equals to 5, A equals to {1, 2, 3, 9, 4}. The answer is 4, because {1, 2, 3, 9, 4} -> {1, 2, 3, 4, 9}. A5 now is on the 4-th position.
Test case 3
In the third test case N equals to 5, K equals to 1, A equals to {1, 2, 3, 9, 4}. The answer is 1, because {1, 2, 3, 9, 4} -> {1, 2, 3, 4, 9}. A1 stays on the 1-th position.
Problem Link :
The idea :
1. Firstly you got to find the position of a particular element in sorted array.
2. You could proceed by sorting and then use linear search
3. Sorting followed by binary search is another option.
4. But the best idea here is to just count the number of elements smaller than a given element .
The Code:
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int length;
scanf("%d",&length);
int *arr=new int[length];
for(int i=0;i<length;i++)
{
scanf("%d",&arr[i]);
}
int k;
scanf("%d",&k);
int search=arr[k-1];
int small=0;
for(int i=0;i<length;i++)
{
if(arr[i]<search)
{
small++;
}
}
cout<<(small+1)<<endl;
}
return 0;
}
No comments:
Post a Comment